Tìm nạp mảng với $ wpdb


9

Tôi đang cố gắng chuyển đổi mã này để sử dụng $ 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']));
        }   
    }

Tôi cũng vậy:

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

Nhưng làm thế nào tôi có thể lấy mảng? Cảm ơn bạn trước sự giúp đỡ.

Câu trả lời:


22

wpdb's get_resultsphương pháp có một đối số tùy chọn thứ hai cho phép bạn chỉ định cách dữ liệu được trả về. Trả về mặc định là một đối tượng. Nhưng bạn cũng có thể đặt nó thành ...

ĐỐI TƯỢNG - kết quả sẽ là đầu ra dưới dạng một mảng được lập chỉ mục bằng số của các đối tượng hàng.

OBJECT_K - kết quả sẽ là đầu ra dưới dạng một mảng kết hợp của các đối tượng hàng, sử dụng các giá trị của cột đầu tiên làm khóa (các bản sao sẽ bị loại bỏ).

ARRAY_A - kết quả sẽ là đầu ra dưới dạng một mảng được lập chỉ mục bằng số của các mảng kết hợp, sử dụng tên cột làm khóa.

ARRAY_N - kết quả sẽ là đầu ra dưới dạng một mảng được lập chỉ mục bằng số của các mảng được lập chỉ mục số.

(từ codex )

Bạn có thể muốn ARRAY_A.

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

Thật không may, wpdbkhông cho phép bạn "truyền phát" kết quả như bạn đang làm, vì vậy bạn sẽ cần sử dụng vòng lặp foreach.

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

Được rồi cảm ơn. Nhưng những gì về dòng này? while($row = mysql_fetch_array($query_exec)) {
Đánh dấu

Xem chỉnh sửa của tôi, bạn chỉ cần sử dụng một foreachvòng lặp thay vì while.
chrisguitarguy

Chết tiệt, tôi đã bỏ lỡ ARRAY_A lần đầu tiên, vì vậy tôi đã gặp lỗi trong bài giảng của mình. Cảm ơn rât nhiều.
Đánh dấu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.