web-dev-qa-db-fra.com

Afficher les données d'une base de données non wordpress sur un modèle de page

J'utilise une requête SQL pour accéder aux informations à afficher sur une page wordpress en ajoutant le code ci-dessous à un modèle de page. Je sais que la requête fonctionne comme je l'ai testée dans phpmyadmin.

 $rows = $newdb->get_results("SELECT TrainerName FROM trainers");   
 echo "<ul>";
 foreach ($rows as $obj) :
 echo "<li>".$obj->Name."</li>";
 endforeach;
 echo "</ul>";

et j'ai ajouté ceci est mon fichier functions.php $newdb = new wpdb(); $newdb->show_errors();

Je n'arrive pas à le faire fonctionner, un message d'erreur "Avertissement: argument non valide fourni pour foreach () ..."

4
stemie

Comme Ben l'a suggéré, vous devez transmettre les détails de la connexion lors de la création de la classe wpdb:

$newdb = new wpdb( 'user', 'password', 'database', 'hostname' );

Vous devez également vérifier que la requête a effectivement renvoyé quelque chose avant d'utiliser le résultat dans une boucle foreach:

if ($rows) {
    foreach ($rows as $obj) {
        ...
    }
}
5
WhiskerSandwich

Où vous avez ceci:

$newdb = new wpdb();

Vous devez donner les informations de connexion à la nouvelle base de données pour qu’elle puisse se connecter. En supposant que vous ayez les mêmes nom d'utilisateur, mot de passe et hôte pour votre nouvelle base de données, vous pouvez utiliser quelques-unes des constantes disponibles, mais vous devrez au moins définir le nom de la base de données de manière spécifique:

$newdb = new wpdb(DB_USER, DB_PASSWORD, 'myNewDbName', DB_Host);
2
Ben HartLenn