Come recuperare ogni riga come array associativo usando $wpdb?
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']));
}
}
Quindi ho fatto:
$query = $wpdb->get_results("SELECT * FROM videos");
Ma come posso recuperare l'array? Grazie in anticipo per l'aiuto.
Il metodo get_results
di wpdb
accetta un secondo argomento opzionale che permette di specificare come i dati vengono restituiti. Il valore predefinito è un oggetto. Ma puoi anche impostarlo a...
OBJECT - il risultato sarà restituito come un array numerico di oggetti riga.
OBJECT_K - il risultato sarà restituito come un array associativo di oggetti riga, utilizzando i valori della prima colonna come chiavi (i duplicati verranno scartati).
ARRAY_A - il risultato sarà restituito come un array numerico di array associativi, utilizzando i nomi delle colonne come chiavi.
ARRAY_N - il risultato sarà restituito come un array numerico di array numerici.
(dal codex)
Probabilmente vorrai usare ARRAY_A
.
<?php
$query = $wpdb->get_results("SELECT * FROM videos", ARRAY_A);
Sfortunatamente, wpdb
non permette di "scorrere" i risultati come stai facendo, quindi dovrai utilizzare un ciclo foreach.
<?php
foreach($query as $row)
{
// fai qualcosa con $row qui.
}

Ok, grazie. Ma che mi dici di questa riga?
while($row = mysql_fetch_array($query_exec)) {

Vedi la mia modifica, devi solo usare un ciclo foreach
invece del while
.
