Cum să parsezi rezultatele rândurilor din $wpdb -> get_results
Am următorul cod:
$query = 'SELECT * FROM wp_pod_tbl_add_questions WHERE id LIKE '. $id;
$row = $wpdb -> get_results($query);
Cum pot obține coloanele numite 'id' și 'name' din $row?

foreach( $wpdb->get_results("SELECT * FROM numele_tabelului_tau WHERE id LIKE' . $id . ';") as $cheie => $rand) {
// fiecare coloană din rând va fi accesibilă astfel
$coloana_mea = $rand->nume_coloana;}
Mai multe informații aici

nu sunt sigur dacă aceasta este cea mai bună abordare. Cred că ar fi mai bine să stochezi rezultatul într-o variabilă și să folosești foreach pe aceasta, pentru a fi în siguranță. De exemplu: $results = $wpdb->get_results($sql); apoi folosești foreach($results as $value).

nu ar trebui să conteze în acest caz, deoarece returnează array, obiect sau null, nu ar trebui să existe riscul de a obține o resursă care nu poate fi parcursă. totuși, dacă ai nevoie să parcurgi rezultatele din nou pentru altceva, atunci cu siguranță ar trebui să le stochezi. nu face query de două ori

Pentru a utiliza ca un array asociativ:
$obj=[];
$rows = $wpdb->get_results( 'SELECT * FROM `tbl_name` WHERE `id` = '.$obj_id , ARRAY_A);
foreach($rows as $row){ $obj=$row; break; }
// $obj este acum rândul selectat dacă a fost găsită o potrivire
Utilizare
$something = $obj['column_name'];
foreach($obj as $col => $val)
echo $col . ': ' . $val . PHP_EOL . '<br />';
Pentru a obține alte formate, schimbați pur și simplu ARRAY_A
conform documentației pentru $wpdb->get_results()
. Răspunsul lui Pippin este potrivit pentru majoritatea utilizărilor cu obiecte.
Pentru a utiliza un rând ca un array indexat numeric
$rows = $wpdb->get_results( 'SELECT * FROM `tbl_name` WHERE `id` = '.$obj_id , ARRAY_N);
foreach($rows as $row){ $obj=$row; break; }
//Utilizare
foreach($obj as $col_value) echo $col_value . ' ';
Pentru a utiliza un rând într-un array ale cărui chei sunt cheia primară din baza de date (adesea o coloană id
). Poate fi mai eficient decât metoda array-ului asociativ.
$rows = $wpdb->get_results( 'SELECT * FROM `tbl_name` WHERE `id` = '.$obj_id , OBJECT_K);
$obj = $rows[ $obj_id ];
//Utilizare
$something = $obj->column_name;
//Țineți minte că puteți itera și prin obiecte
foreach($obj as $col => $val)
echo $col . ': ' . $val . PHP_EOL;

Încearcă întotdeauna WordPress Codex: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
În esență, având în vedere sintaxa implicită, variabila $row aici este un obiect care conține rezultatele tale. Alternativ, poți specifica TIPUL de rezultat (matrice numerică, matrice asociativă).
Presupunând că ai doar un rezultat, atunci $row->id și $row->name ar trebui să-ți ofere informația.
Dacă obții mai multe rezultate, ar trebui să parcurgi intrările din obiect.
Dacă te aștepți să obții doar un singur rând, încearcă să folosești $wpdb->get_row http://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Row
