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.

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.
}

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.