web-dev-qa-db-fra.com

Récupérer un tableau avec $ wpdb

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

Alors j'ai fait:

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

Mais comment puis-je aller chercher le tableau? Merci d'avance pour votre aide.

8
Mark

wpdb La méthode get_results prend un second argument facultatif qui vous permet de spécifier le mode de renvoi des données. Le retour par défaut est un objet. Mais vous pouvez aussi le configurer pour ...

OBJECT - le résultat sera généré 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 ignorés).

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

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

(du codex )

Vous voulez probablement ARRAY_A.

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

Malheureusement, wpdb ne vous permet pas de "diffuser" les résultats comme vous le faites, vous devez donc utiliser une boucle foreach.

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