$ wpdbから行の結果を解析する方法-> get_results
4 回答
- 投票
-
- 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;}
詳細情報
こちら 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
-
しかし、これが正しい方法かどうかはわかりません.安全のために、結果を変数に取得し、その上でforeachを使用する必要があると思います.例えば.$ results=$ wpdb->get_results($ sql);次に、foreach($ 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
-
このインスタンスでは、配列、オブジェクト、またはnullが返されるため、実際には問題になりません.「ループに適さない」リソースを取得するリスクはありません.それはあなたが何か他のもののためにそれらをもう一度ループしたいかもしれないと言った、そしてそうなら間違いなくそれを保存する.2回クエリしないでくださいshouldn'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
常にWordPressコーデックスを試してください: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
基本的にデフォルトの構文が与えられている場合、ここでの変数$ rowは、結果を含むオブジェクトです.または、結果のタイプ(数値配列、連想配列)を指定することもできます.
結果が1つだけだとすると、$ row->idと$ row->nameで情報が得られます.
複数の結果が返される場合は、オブジェクトのエントリをループする必要があります.
1行だけ戻ると予想される場合は、$ 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
連想配列として使用するには:
$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
使用法
$something = $obj['column_name']; foreach($obj as $col => $val) echo $col . ': ' . $val . PHP_EOL . '<br />';
他の形式を取得するには、
ARRAY_Aを変更するだけです. "> $wpdb->get_results()
のドキュメント. Pippinの答えは、ほとんどのオブジェクトの使用に適しています.1つの行を数値インデックス付き配列として使用するには
$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 . ' ';
キーがデータベースの主キーである配列の1つの行を使用する(多くの場合
id
列).おそらく連想配列法よりも効率的です.$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
このコードは私にぴったりです:
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;}
次のものがあります:
$ rowから「id」および「name」という名前の列を取得するにはどうすればよいですか?