Bonjour tout le monde,
J'ai réalisé une galerie vidéo et j'ai un petit problème avec l'affichage d'une variable extraite d'une fonction.
Je désire lors de l'affichage des vidéos afficher un lien commentaire sous chacune d'entre elles avec le nombre de commentaires liés à chaque vidéos.
Voici mon code :
Premier cas qui fonctionne
Pour l'instant tout va bien, mes vidéos s'affichent et avec le lien commentaire et le nombre de commentaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 if ($nbvidéos != 0){ echo '<table>'; for ($i=0; $i<$nbvidéos; $i++){ $sql ='SELECT commentaire FROM commentaires WHERE video="'.$tableau[$i].'"'; $resultat = mysql_query($sql) or die ('Erreur SQL !'.$sql.'<br/>'.mysql_error()); $nbcom = mysql_num_rows($resultat); if (mysql_num_rows($resultat)<=1){ $com = 'commentaire'; } else { $com = 'commentaires'; } if($i%$nbcol==0) echo '<tr>'; echo '<td><a href="../videos/'.$tableau[$i].'"><img src="../css/images/photos.jpg" alt="vidéo"/><br/>'.$titre.($i+1).'</a><br/>'; echo '<a href="../vue/commentaires.php?f='.$tableau[$i].'">'.$nbcom.' '.$com.'</a></td>'; if($i%$nbcol==($nbcol-1) or $i==($nbvidéos-1)) echo '</tr>'; }
Maintenant je change mon code et j'appelle un paramètre d'une fonction extérieure à mon fichier.
Deuxième cas qui ne fonctionne pas
code modifié :
Code de la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 if ($nbvidéos != 0){ echo '<table>'; for ($i=0; $i<$nbvidéos; $i++){ $resultat = ''; $resultat = recupcom($resultat); $nbcom = mysql_num_rows($resultat); if (mysql_num_rows($resultat)<=1){ $com = 'commentaire'; } else { $com = 'commentaires'; } if($i%$nbcol==0) echo '<tr>'; echo '<td><a href="../videos/'.$tableau[$i].'"><img src="../css/images/photos.jpg" alt="vidéo"/><br/>'.$titre.($i+1).'</a><br/>'; echo '<a href="../vue/commentaires.php?f='.$tableau[$i].'">'.$nbcom.' '.$com.'</a></td>'; if($i%$nbcol==($nbcol-1) or $i==($nbvidéos-1)) echo '</tr>'; }
Là problème, le nombre de commentaire ne s'affiche plus ou plutôt ça affiche zéro.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function recupcom($resultat){ global $tableau; global $i; $sql ='SELECT commentaire FROM commentaires WHERE video="'.$tableau[$i].'"'; $resultat = mysql_query($sql) or die ('Erreur SQL !'.$sql.'<br/>'.mysql_error()); return $resultat; mysql_close(); }
Lorsque je fais un print_r de la variable $resultat, dans les deux cas ça m'affiche exactement la même chose:
Resource id #11Resource id #12Resource id #13Resource id #14Resource id #15Resource id #16Resource id #17Resource id #18Resource id #19Resource id #20Resource id #21Resource id #22
Mais lorsque je fais un print_r de $nbcom :
Dans mon premier cas ça m'affiche 600000000000 qui correspond aux 6 commentaires de la première vidéo puis des zéro vu qu'il n'y a aucun commentaire dans les autres vidéos.
Dans le deuxième cas ça m'affiche 000000000000, comme si il n'avait récupéré aucun commentaire.
Je ne comprend pas pourquoi dans le cas du print_r $resultat ça affiche la même chose et dans le cas du print_r $nbcom, non.
Enfin voilà mon problème principal.
Ensuite il y a une petite chose que je ne comprends pas.
Lorsque je fais dans mon premier cas qui fonctionne
$resultat = mysql_fetch_assoc ($resultat);
print_r ($resultat);
ça m'affiche un seul commentaire alors que c'est censé m'en récupérer 6, est ce normal ?
J'espère avoir été assez clair et précis sans trop en mettre, merci d'avance pour vos réponses.
Partager