Como analisar resultados de linha de $ wpdb - get_results

8

Eu tenho o seguinte:

$query = 'SELECT * FROM wp_pod_tbl_add_questions WHERE id LIKE '. $id;

                                        $row = $wpdb -> get_results($query);

Como obtenho as colunas chamadas 'id' e 'name' de $ row?

    
por redconservatory 19.07.2011 / 23:42

4 respostas

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;}

Mais informações aqui

    
por Pippin 20.07.2011 / 01:20
2

Sempre tente o codex WordPress: enlace

Essencialmente dada a sintaxe padrão, a variável $ row aqui é um objeto que contém seus resultados. Você poderia alternadamente especificar o tipo de resultado (matriz numérica, matriz associativa).

Assumindo apenas um resultado, o nome $ row- > id e $ row- > deve fornecer as informações.

Se você receber mais de um resultado, você desejará passar por cima das entradas no objeto.

Se você está esperando apenas uma linha de volta, tente usar $ wpdb- & get; enlace

    
por Jeff Rose 20.07.2011 / 00:07
2

Para usar como uma matriz associativa:

$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 obter outros formatos, basta alterar ARRAY_A com base na documentação para $wpdb->get_results() . A resposta de Pippin é apropriada para a maioria dos objetos.

Para usar uma linha como uma matriz numericamente indexada

$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 uma linha em uma matriz cujas chaves são a chave primária do banco de dados (geralmente uma coluna id ). Possivelmente mais eficiente que o método de matriz associativa.

$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;
    
por Garet Claborn 31.10.2017 / 00:47
1

Esse código funciona perfeito para mim:

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

Tags