Cómo analizar los resultados de las filas de $ wpdb - get_results

8

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 denominadas 'id' y 'nombre' de $ row?

    
pregunta redconservatory 19.07.2011 - 23:42

4 respuestas

16
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í

    
respondido por el Pippin 20.07.2011 - 01:20
2

Prueba siempre el códice de WordPress: enlace

Básicamente, dada la sintaxis predeterminada, la variable $ row aquí es un objeto que contiene sus resultados. Alternativamente, podría especificar el TIPO de resultado (matriz numérica, matriz asociativa).

Asumiendo solo un resultado, entonces $ row- > id y $ row- > name deben proporcionarle la información.

Si recuperas más de un resultado, deberías recorrer las entradas en el objeto.

Si está esperando solo una fila, intente usar $ wpdb- > get_row enlace

    
respondido por el Jeff Rose 20.07.2011 - 00:07
2

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 en función de la documentación de para $wpdb->get_results() . La respuesta de Pippin es apropiada para la mayoría de los 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 columna id ). 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;
    
respondido por el Garet Claborn 31.10.2017 - 00:47
1

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;}    
    
respondido por el Jismon Thomas 15.03.2018 - 17:52

Lea otras preguntas en las etiquetas