Bonjour,
J'ai la requête suivante :
$sql = "SELECT RR.id, RR.pseudo_id, RR.pseudo, RR.email, RR.email_publication, RR.titre, RR.reve, RR.date, RRVR.pseudo as pseudo_inscrit FROM reves_reves RR, reves_reveurs RRVR WHERE RR.activity='on' AND RRVR.id = RR.pseudo_id ORDER BY RR.id DESC LIMIT $reves_bckid,$nb_reves_aff";
Celle-ci marche bien et fait ce que je veux (elle affiche les rêves sur une page grâce à une boucle while et sélectionne le pseudo du rêveur dans une table reves_reveur en fonction de son id; si il n'est pas membre inscrit son id est égal à 0 mais il y a un enregistrement "0" dans la table reves_reveurs, même si je ne me sert pas de celui-ci car il n'a pas de données intéressantes du coup).
Chaque rêve peut être commenté. J'affiche le nombre de commentaire de chaque rêve en dessous de celui-ci. Pour le moment ça se limite à intégrer ce bout de code dans la boucle d'affichage des rêves :
1 2 3 4 5
| // Nombre de commentaires
$id_reve = $db_data_reves['id'];
$nb_comments_on_req = mysql_query("SELECT COUNT(*) AS nb_comments FROM reves_comments WHERE id_reve='$id_reve' AND activity='on'");
$nb_comments_on_data = mysql_fetch_assoc($nb_comments_on_req);
$nb_comments_on = $nb_comments_on_data['nb_comments']; |
Mais je ne pense pas qu'intégrer une requête de ce type dans une boucle est très optimal... Je cherche donc une solution plus efficace. J'ai donc essayé d'intégré la requête précédente dans ma première requête, effectuée avant la boucle, puis affichée dans la boucle. La voici modifiée en :
$sql = "SELECT RR.id, RR.pseudo_id, RR.pseudo, RR.email, RR.email_publication, RR.titre, RR.reve, RR.date, RRVR.pseudo as pseudo_inscrit, RC.COUNT(*) FROM reves_reves RR, reves_reveurs RRVR, reves_comments RC WHERE RR.activity='on' AND RRVR.id = RR.pseudo_id AND RC.id_reve=RR.id ORDER BY RR.id DESC LIMIT $reves_bckid,$nb_reves_aff";
Mais ça me génère l'erreur SQL suivante :
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
De quoi cela provient-il (j'ai un doute sur mon RC.COUNT(*) mais ne sais pas comment tenter la chose autrement). Pourriez-vous m'aidez svp :- ?
[Sujet déplacé par Maximilian]
[ancien forum : MySQL]
Partager