Cómo analizar los resultados de las filas de $ wpdb -> get_results
4 respuestas
- votos
-
- 2011-07-19
foreach( $wpdb->get_results("SELECT * FROM your_table_name WHERE id LIKE' . $id . ';") as $key => $row) { // each column in your row will be accessible like this $my_column = $row->column_name;}
Másinformación aquí
foreach( $wpdb->get_results("SELECT * FROM your_table_name WHERE id LIKE' . $id . ';") as $key => $row) { // each column in your row will be accessible like this $my_column = $row->column_name;}
More info here
-
Sinembargo,noestoy seguro de siestaes lamanera correcta.Creo que uno debería obtenerel resultado de una variable y usarforeachen eso,paraestar seguro.P.ej.$ resultados=$ wpdb->get_results ($ sql);y luego useforeach ($ results as $ value).not sure if this is the right way though. I think one should get the result to a variable and use foreach on that, to be safe. E.g. $results = $wpdb->get_results($sql); and then use foreach($results as $value).
- 2
- 2013-09-13
- Gogol
-
Realmenteno deberíaimportaren este caso,ya que devuelve unamatriz,un objeto o un valornulo,no debería haberningún riesgo de obtener un recurso "no compatible conelbucle".Dichoesto,esposible que desee volver a recorrerlosen busca de otra cosa,y sies así,definitivamente almacenarlo.no consultes dos vecesshouldn't really matter in this instance since it returns array, object or null, there shouldn't be any risk of getting a "loop unfriendly" resource. that said you may want to loop through them again for something else, and if so definitely store it. don't query twice
- 0
- 2017-10-29
- Garet Claborn
-
- 2011-07-19
Pruebe siempreel Codex de WordPress: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
Básicamente dada la sintaxispredeterminada,la variable $fila aquíes un objeto que contiene sus resultados.Alternativamente,podríaespecificarel TIPO de resultado (matriznumérica,matriz asociativa).
Asumiendo solo un resultado,$ row->id y $ row->name deberían darle lainformación.
Si obtienemás de un resultado,querrá recorrer lasentradas del objeto.
Si soloespera unafila atrás,intente usar $ wpdb->get_row http://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Row
Always Try the WordPress Codex: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
Essentially given the default syntax, the variable $row here is an object containing your results. You could alternately specify the TYPE of result (numeric array, associative array).
Assuming just one result, then $row->id and $row->name should give you the information.
If you get back more than one result, you'd want to loop over the entries in the object.
If you are expecting just one row back, then try using $wpdb->get_row http://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Row
-
- 2017-10-30
Para usar como unamatriz asociativa:
$obj=[]; $rows = $wpdb->get_results( 'SELECT * FROM `tbl_name` WHERE `id` = '.$obj_id , ARRAY_A); foreach($rows as $row){ $obj=$row; break; } // $obj is now the selected row if a match was found
Uso
$something = $obj['column_name']; foreach($obj as $col => $val) echo $col . ': ' . $val . PHP_EOL . '<br />';
Para obtener otrosformatos,simplemente cambie
ARRAY_A
basadoen documentación de$wpdb->get_results()
. La respuesta de Pippines apropiadapara lamayoría de los objetos.Para usar unafila como unamatrizindexadanuméricamente
$rows = $wpdb->get_results( 'SELECT * FROM `tbl_name` WHERE `id` = '.$obj_id , ARRAY_N); foreach($rows as $row){ $obj=$row; break; } //Usage foreach($obj as $col_value) echo $col_value . ' ';
Para usar unafilaen unamatriz cuyas claves son la claveprincipal de subase de datos (amenudo una columna
id
). Posiblementemáseficiente queelmétodo dematriz asociativa.$rows = $wpdb->get_results( 'SELECT * FROM `tbl_name` WHERE `id` = '.$obj_id , OBJECT_K); $obj = $rows[ $obj_id ]; //Usage $something = $obj->column_name; //Remember you can loop over objects too foreach($obj as $col => $val) echo $col . ': ' . $val . PHP_EOL;
To use as an associative array:
$obj=[]; $rows = $wpdb->get_results( 'SELECT * FROM `tbl_name` WHERE `id` = '.$obj_id , ARRAY_A); foreach($rows as $row){ $obj=$row; break; } // $obj is now the selected row if a match was found
Usage
$something = $obj['column_name']; foreach($obj as $col => $val) echo $col . ': ' . $val . PHP_EOL . '<br />';
To get other formats, simply change
ARRAY_A
based on the documentation for$wpdb->get_results()
. Pippin's answer is appropriate for most object use.To use one row as an numerically indexed array
$rows = $wpdb->get_results( 'SELECT * FROM `tbl_name` WHERE `id` = '.$obj_id , ARRAY_N); foreach($rows as $row){ $obj=$row; break; } //Usage foreach($obj as $col_value) echo $col_value . ' ';
To use one row in an array whose keys are the primary key from your database(often an
id
column). Possibly more efficient than the associative array method.$rows = $wpdb->get_results( 'SELECT * FROM `tbl_name` WHERE `id` = '.$obj_id , OBJECT_K); $obj = $rows[ $obj_id ]; //Usage $something = $obj->column_name; //Remember you can loop over objects too foreach($obj as $col => $val) echo $col . ': ' . $val . PHP_EOL;
-
- 2018-03-15
Este códigofuncionaperfectamenteparamí:
global $wpdb; $table_name = "my_table_name"; $myrows = $wpdb->get_results( "SELECT `id`, `name` FROM ".$table_name); foreach ($myrows as $details) { echo $details->id; echo $details->name;}
This code work perfect for me:
global $wpdb; $table_name = "my_table_name"; $myrows = $wpdb->get_results( "SELECT `id`, `name` FROM ".$table_name); foreach ($myrows as $details) { echo $details->id; echo $details->name;}
Tengo lo siguiente:
¿Cómo obtengo las columnas llamadas 'id' y 'name' de $ row?