Ok, je suppose que le titre n'est pas le meilleur titre, mais permettez-moi d'expliquer mon problème: Je crée un site Web qui doit afficher des messages de personnes (de toute façon), et je doivent montrer leur photo du profil de gravatar, donc ce que je faisais:Exécuter une requête SQL à l'intérieur d'une autre requête SQL
<?php
function get_gravatar($email, $s = 80, $d = 'mm', $r = 'g', $img = false, $atts = array()) {
$url = 'https://www.gravatar.com/avatar/';
$url .= md5(strtolower(trim($email)));
$url .= "?s=$s&d=$d&r=$r";
if ($img) {
$url = '<img src="' . $url . '"';
foreach ($atts as $key => $val)
$url .= ' ' . $key . '="' . $val . '"';
$url .= ' />';
}
return $url;
}
require("db.php");
$sql = "SELECT * FROM posts ORDER BY date DESC";
foreach ($db->query($sql) as $row) {
// var_dump($row);
$user = $row['user_id'];
$sql_user = "SELECT email FROM users WHERE id = $user";
foreach ($db->$sql_user as $row_user) {
var_dump($row_user);
echo "<img src=\"".get_gravatar($row_user['email'])."\"/>";
}
echo "<h2>".$row['title']."</h2><br/>";
echo "<p>".$row['content']."</p><br/>";
}
mais, cela ne fonctionne pas (bien, cela fonctionne, mais il ne me montre pas la photo du profil de l'utilisateur, seul le poster). Donc, je pense que le problème est que je ne peux pas appeler 2 fois la variable $db
en même temps, mais je ne suis pas sûr, c'est pourquoi m = pourquoi je demande s'il y a un moyen de résoudre mon problème ou pour sélectionner 2 tables en même temps.
voir votre deuxième foreach vous manquez de mettre la fonction de requête –