Comment analyser les résultats des lignes de $ wpdb -> get_results
4 réponses
- votes
-
- 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;}
Plus d'informations ici
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
-
jene saispas si c'est labonnemanière.Jepense qu'ilfaut obtenir le résultat à une variableet utiliserforeach sur cela,pour être sûr.Parexemple.$ results=$ wpdb->get_results ($ sql);puis utilisezforeach ($ results as $ value).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
-
ne devraitpas vraiment avoir d'importance dans cetteinstance caril retourne untableau,un objet ou une valeurnulle,ilne devraitpas y avoir de risque d'obtenir une ressource "sansboucle".Cela dit,vous voudrezpeut-être lesparcourir ànouveaupour autre chose,et si c'est le cas,le stocker.nepasinterroger deuxfoisshouldn'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
Essayeztoujours le Codex WordPress: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
Comptetenu de la syntaxepar défaut,la variable $ rowiciest un objet contenant vos résultats.Vouspouvez également spécifier le TYPE de résultat (tableaunumérique,tableau associatif).
En supposant un seul résultat,alors $ row->idet $ row->name devraient vous donner lesinformations.
Si vous obtenezplus d'un résultat,vous voudrezboucler sur lesentrées de l'objet.
Si vousn'attendez qu'une seule ligneen arrière,essayez d'utiliser $ 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
À utiliser commetableau associatif:
$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
Utilisation
$something = $obj['column_name']; foreach($obj as $col => $val) echo $col . ': ' . $val . PHP_EOL . '<br />';
Pour obtenir d'autresformats,modifiez simplement
ARRAY_A
en fonction de documentationpour$wpdb->get_results()
. La réponse de Pippinest appropriéepour laplupart des utilisations d'objets.Pour utiliser une ligne commetableauindexénumériquement
$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 . ' ';
Pour utiliser une ligne dans untableau dont les clés sont la cléprimaire de votrebase de données (souvent une colonne
id
). Peut-êtreplusefficace que laméthode destableaux associatifs.$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
Ce codefonctionneparfaitementpourmoi:
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;}
J'ai ce qui suit:
Commentpuis-je obtenir les colonnesnommées "id"et "nom" àpartir de $ row?