Récupérer le tableau avec $ wpdb

9

J'essaie de convertir ce code pour utiliser $ 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']));
        }   
    }

J'ai donc fait:

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

Mais comment puis-je récupérer le tableau? Merci d'avance pour votre aide.

marque
la source

Réponses:

22

wpdbLa get_resultsméthode de 'prend un deuxième argument facultatif qui vous permet de spécifier comment les données sont retournées. Le retour par défaut est un objet. Mais vous pouvez également le régler sur ...

OBJET - le résultat sera affiché sous la forme d'un tableau indexé numériquement d'objets de ligne.

OBJECT_K - le résultat sera affiché sous la forme d'un tableau associatif d'objets de ligne, en utilisant les valeurs de la première colonne comme clés (les doublons seront supprimés).

ARRAY_A - le résultat sera affiché sous la forme d'un tableau indexé numériquement de tableaux associatifs, en utilisant les noms de colonne comme clés.

ARRAY_N - le résultat sera affiché sous la forme d'un tableau indexé numériquement de tableaux indexés numériquement.

(du codex )

Tu veux probablement ARRAY_A.

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

Malheureusement, wpdbne vous permet pas de «diffuser» les résultats comme vous le faites, vous devrez donc utiliser une boucle foreach.

<?php
foreach($query as $row)
{
    // do stuff with $row here.
}
chrisguitarguy
la source
OK merci. Mais qu'en est-il de cette ligne? while($row = mysql_fetch_array($query_exec)) {
Mark
Voir mon montage, il vous suffit d'utiliser une foreachboucle au lieu de while.
chrisguitarguy
Merde, j'ai raté l'ARRAY_A la première fois, donc j'ai eu une erreur dans mon foreach. Merci beaucoup.
Mark