web-dev-qa-db-ja.com

$ wpdbで配列を取得する

私はこのコードを$ wpdbを使うように変換しようとしています。

$data = array();

$query = "SELECT * FROM videos";
$query_exec = mysql_query($query) or die();

while($row = mysql_fetch_array($query_exec)) {
    if ( $row['video'] == "http://youtu.be/".end(explode('http://youtu.be/',$row['video'])) ) {
            $data[$row['id']] = end(explode('http://youtu.be/', $row['video']));
        } else {
            $data[$row['id']] = end(explode('?v=', $row['video']));
        }   
    }

だから私はしました:

$query = $wpdb->get_results("SELECT * FROM videos");

しかし、どうすれば配列を取得できますか?ご協力ありがとうございます。

8
Mark

wpdbget_resultsメソッドは、データがどのように返されるかを指定できるオプションの2番目の引数を取ります。デフォルトの戻り値はオブジェクトです。しかし、あなたはそれをに設定することもできます...

OBJECT - 結果は、行オブジェクトの数値インデックス配列として出力されます。

OBJECT_K - 結果はキーとして最初の列の値を使用して、行オブジェクトの連想配列として出力されます(重複は破棄されます)。

ARRAY_A - 結果は、列名をキーとして使用して、連想配列の数値インデックス配列として出力されます。

ARRAY_N - 結果は、数値インデックス配列の数値インデックス配列として出力されます。

コーデックス から)

おそらくARRAY_Aが欲しいでしょう。

<?php
$query = $wpdb->get_results("SELECT * FROM videos", ARRAY_A);

残念ながら、wpdbではあなたがしているような結果を「ストリームイン」することができないので、foreachループを使う必要があります。

<?php
foreach($query as $row)
{
    // do stuff with $row here.
}
19
chrisguitarguy