Recupera array con $ wpdb


9

Sto cercando di convertire questo codice per utilizzare $ 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']));
        }   
    }

Così ho fatto:

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

Ma come posso recuperare l'array? Grazie in anticipo per l'aiuto.

Risposte:


22

wpdbIl get_resultsmetodo accetta un secondo argomento facoltativo che consente di specificare come vengono restituiti i dati. Il ritorno predefinito è un oggetto. Ma puoi anche impostarlo su ...

OGGETTO: il risultato verrà emesso come una matrice indicizzata numericamente di oggetti riga.

OBJECT_K: il risultato verrà generato come una matrice associativa di oggetti riga, usando i valori della prima colonna come chiavi (i duplicati verranno scartati).

ARRAY_A: il risultato verrà emesso come una matrice indicizzata numericamente di array associativi, usando i nomi delle colonne come chiavi.

ARRAY_N: il risultato verrà generato come una matrice indicizzata numericamente di matrici indicizzate numericamente.

(dal codice )

Probabilmente vuoi ARRAY_A.

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

Sfortunatamente, wpdbnon ti consente di "trasmettere" i risultati come stai facendo, quindi dovrai usare un ciclo foreach.

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

Ok grazie. Ma che dire di questa linea? while($row = mysql_fetch_array($query_exec)) {
Segna il

Vedi la mia modifica, devi solo usare un foreachciclo invece di while.
chrisguitarguy,

Accidenti, ho perso l'ARRAY_A la prima volta, quindi ho avuto un errore nella mia ricerca. Grazie mille.
Segna il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.