Come analizzare i risultati delle righe da $ wpdb -> get_results
4 risposta
- voti
-
- 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;}
Maggioriinformazioni qui
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
-
non sono sicuro che questo siailmodogiustoperò.Penso che si dovrebbe ottenereil risultato su una variabilee usareforeach su quella,per sicurezza.Peresempio.$ risultati=$ wpdb->get_results ($ sql);e quindi usaforeach ($ risultati come $ valore).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
-
non dovrebbe avereimportanzain questaistanzapoiché restituisce array,oggetto onull,non dovrebbeesserci alcun rischio di ottenere una risorsa "non amichevole".Detto questo,potresti volerli scorrere dinuovoper qualcos'altroe,in tal caso,archiviarlo definitivamente.noninterrogare due volteshouldn'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
Prova sempreil codice WordPress: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
Essenzialmente data la sintassipredefinita,la variabile $ row qui è un oggetto contenentei risultati.In alternativa,puoi specificareil TIPO di risultato (matricenumerica,matrice associativa).
Supponendo un solo risultato,$ row->ide $ row->name dovrebberofornirti leinformazioni.
Se ottienipiù di un risultato,ti consigliamo di ripetere le vocinell'oggetto.
Seti aspetti solo una rigaindietro,prova a utilizzare $ 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
Da utilizzare come array associativo:
$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
Utilizzo
$something = $obj['column_name']; foreach($obj as $col => $val) echo $col . ': ' . $val . PHP_EOL . '<br />';
Per ottenere altriformati,cambia semplicemente
ARRAY_A
in base a documentazioneper$wpdb->get_results()
. La risposta di Pippin è appropriataper lamaggiorparte degli usi degli oggetti.Per utilizzare una riga comematriceindicizzatanumericamente
$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 . ' ';
Per utilizzare una rigain un array le cui chiavi sono la chiaveprimaria del database (spesso una colonna
id
). Forsepiùefficiente delmetodo degli array associativi.$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
Questo codicefunzionaperfettamenteperme:
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;}
Ho quanto segue:
Come ottengo le colonne denominate "id"e "nome" da $ row?