Tengo lo siguiente:
$query = 'SELECT * FROM wp_pod_tbl_add_questions WHERE id LIKE '. $id;
$row = $wpdb -> get_results($query);
¿Cómo obtengo las columnas llamadas 'id' y 'nombre' de $ row?
Tengo lo siguiente:
$query = 'SELECT * FROM wp_pod_tbl_add_questions WHERE id LIKE '. $id;
$row = $wpdb -> get_results($query);
¿Cómo obtengo las columnas llamadas 'id' y 'nombre' de $ row?
Respuestas:
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ás información aquí.
Pruebe siempre el Codex de WordPress: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
Básicamente, dada la sintaxis predeterminada, la variable $ row aquí es un objeto que contiene sus resultados. Alternativamente, puede especificar el TIPO de resultado (matriz numérica, matriz asociativa).
Suponiendo solo un resultado, $ row-> id y $ row-> name deberían proporcionarle la información.
Si obtiene más de un resultado, desearía recorrer las entradas del objeto.
Si espera solo una fila hacia atrás, intente usar $ wpdb-> get_row http://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Row
Para usar como una matriz 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 otros formatos, simplemente cambie ARRAY_A
según la documentación de$wpdb->get_results()
. La respuesta de Pippin es apropiada para la mayoría del uso de objetos.
Para usar una fila como una matriz indexada numé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 una fila en una matriz cuyas claves son la clave principal de su base de datos (a menudo una id
columna). Posiblemente más eficiente que el método de matriz 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;
Este código funciona perfecto para mí:
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;}