Ambil array dengan $ wpdb

9

Saya mencoba mengonversi kode ini untuk menggunakan $ 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']));
        }   
    }

Jadi saya melakukannya:

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

Tetapi bagaimana saya bisa mengambil array? Terima kasih sebelumnya untuk bantuan.

Menandai
sumber

Jawaban:

22

wpdb's get_resultsmetode mengambil argumen kedua opsional yang memungkinkan Anda menentukan bagaimana data dikembalikan. Pengembalian default adalah objek. Tetapi Anda juga dapat mengaturnya ke ...

OBJECT - hasilnya akan menjadi output sebagai array yang diindeks secara numerik dari objek baris.

OBJECT_K - hasilnya akan menjadi output sebagai array asosiatif dari objek baris, menggunakan nilai kolom pertama sebagai kunci (duplikat akan dibuang).

ARRAY_A - hasilnya akan ditampilkan sebagai array array asosiatif yang diindeks secara numerik, menggunakan nama kolom sebagai kunci.

ARRAY_N - hasilnya akan ditampilkan sebagai array yang diindeks secara numerik dari array yang diindeks secara numerik.

(dari naskah kuno )

Anda mungkin mau ARRAY_A.

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

Sayangnya, wpdbtidak memungkinkan Anda untuk "streaming" hasil seperti yang Anda lakukan, jadi Anda harus menggunakan loop foreach.

<?php
foreach($query as $row)
{
    // do stuff with $row here.
}
chrisguitarguy
sumber
Ok terima kasih. Tapi bagaimana dengan garis ini? while($row = mysql_fetch_array($query_exec)) {
Tandai
Lihat hasil edit saya, Anda hanya perlu menggunakan foreachlingkaran alih-alih while.
chrisguitarguy
Sial, saya melewatkan ARRAY_A pertama kali, jadi saya mendapat kesalahan di muka saya. Terima kasih banyak.
Tandai