Obtener matriz con $ wpdb

9

Estoy tratando de convertir este código para usar $ 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']));
        }   
    }

Así que lo hice:

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

Pero, ¿cómo puedo obtener la matriz? Gracias por adelantado por la ayuda.

marca
fuente

Respuestas:

22

wpdbEl get_resultsmétodo toma un segundo argumento opcional que le permite especificar cómo se devuelven los datos. El retorno predeterminado es un objeto. Pero también puedes configurarlo para ...

OBJETO: el resultado se generará como una matriz indexada numéricamente de objetos de fila.

OBJECT_K: el resultado se generará como una matriz asociativa de objetos de fila, utilizando los valores de la primera columna como claves (los duplicados se descartarán).

ARRAY_A: el resultado se generará como una matriz indexada numéricamente de matrices asociativas, utilizando nombres de columnas como claves.

ARRAY_N: el resultado se generará como una matriz indexada numéricamente de matrices indexadas numéricamente.

(del códice )

Probablemente quieras ARRAY_A.

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

Desafortunadamente, wpdbno le permite "transmitir" los resultados como lo está haciendo, por lo que deberá usar un bucle foreach.

<?php
foreach($query as $row)
{
    // do stuff with $row here.
}
chrisguitarguy
fuente
OK gracias. ¿Pero qué hay de esta línea? while($row = mysql_fetch_array($query_exec)) {
Mark
Vea mi edición, solo necesita usar un foreachbucle en lugar de while.
chrisguitarguy
Maldición, me perdí el ARRAY_A la primera vez, así que recibí un error en mi foreach. Muchas gracias.
Mark