[PHP] Jointures !

Jointures ! [PHP] - Programmation

Marsh Posté le 11-01-2002 à 21:50:15    

Salut !
J'ai un probleme avec une jointure qui sur ma page php ne s'execute pas correctement.
 
Logiquement, elle devrais me retourner 2 lignes dans mon tableau et la, je n'ai qu'un résultat.
 
J'ai tester ma requette dans phpmyadmin, et lui me retourne les 2 résultats attendus.
 
Serais-ce du au while ($ligne = mysql_fetch_array($resultat)) ?
 
voici le script :
 
$sql = "select B.plateforme,B.version,B.taille,B.nb,B.date,A.modele from $table AS A,$table2 AS B where A.marque = '$marque' AND A.modele = '$modele' AND B.id_drivers = A.id";
 
$resultat = mysql_query($sql);
 
while ($ligne = mysql_fetch_array($resultat)) {
mon code html, blablabla...
}
 
Merci de votre aide et dites moi ce que vous en pensez ! ;)
++

 

[edtdd]--Message édité par kyle--[/edtdd]

Reply

Marsh Posté le 11-01-2002 à 21:50:15   

Reply

Marsh Posté le 11-01-2002 à 22:24:55    

essaye un mysql_num_rows($resultat) pour voir combien tu as de lignes.
 
si tu n'en as pas le même que sous phpmyadmin, c'est ta ligne de requête qui bugge.

Reply

Marsh Posté le 11-01-2002 à 22:58:05    

Il m'indique bien que j'ai 2 résultats !

Reply

Marsh Posté le 11-01-2002 à 23:06:25    

c'est pas normal :D donne voir ton code un peu plus en détail ...

Reply

Marsh Posté le 11-01-2002 à 23:09:27    

Voici la partie faisant défaut :
 
<?
$nbrresult = mysql_num_rows($resultat);
while ($ligne = mysql_fetch_array($resultat)) {
$vote1 = $ligne[vote_1];
$vote2 = $ligne[vote_2];
$vote3 = $ligne[vote_3];
$vote4 = $ligne[vote_4];
$vote5 = $ligne[vote_5];
 
$nbre_etoile = $vote1*1 + $vote2*2 + $vote3*3 + $vote4*4 + $vote5*5;
if ($vote1 == 0 && $vote2 == 0 && $vote3 == 0 && $vote4 == 0 && $vote5 == 0) {
$nbre_etoile2 = "<img src=\"img/star_0.gif\" alt=\"Votez !\" border=\"0\">";
} else {
$nbre_etoile2 = $nbre_etoile / ($vote1 + $vote2 + $vote3 + $vote4 + $vote5);
if (($nbre_etoile2 >= 1) & ($nbre_etoile2 < 2)) { $nbre_etoile2 = "<img src=\"img/star_1.gif\" alt=\"Votez !\" border=\"0\">"; }
if (($nbre_etoile2 >= 2) & ($nbre_etoile2 < 3)) { $nbre_etoile2 = "<img src=\"img/star_2.gif\" border=\"0\">"; }
if (($nbre_etoile2 >= 3) & ($nbre_etoile2 < 4)) { $nbre_etoile2 = "<img src=\"img/star_3.gif\" alt=\"Votez !\" border=\"0\">"; }
if (($nbre_etoile2 >= 4) & ($nbre_etoile2 < 5)) { $nbre_etoile2 = "<img src=\"img/star_4.gif\" alt=\"Votez !\" border=\"0\">"; }
if (($nbre_etoile2 == 5)) { $nbre_etoile2 = "<img src=\"img/star_5.gif\" alt=\"Votez !\" border=\"0\">"; }
}
printf("<tr><td width=\"155\" class=\"menunongras\" bgcolor=\"#F2F2F2\" height=\"18\">" );
printf("<div align=\"left\"> $ligne[plateforme]</div></td>" );
printf("<td width=\"110\" class=\"menunongras\" bgcolor=\"#D9D9D9\" height=\"18\"><div align=\"center\">$ligne[version]</div></td>" );
printf("<td width=\"60\" class=\"menunongras\" bgcolor=\"#F2F2F2\" height=\"18\"><div align=\"center\">$ligne[taille]</div></td>" );
printf("<td width=\"70\" class=\"menunongras\" bgcolor=\"#D9D9D9\" height=\"18\"><div align=\"center\">[$ligne[nb]]<a href=\"?marque=$marque&modele=$modele&id=$ligne[id]\"><img src=\"img/hit.gif\" width=\"18\" height=\"19\" border=\"0\" align=\"absmiddle\" alt=\"Téléchargement version $ligne[version] pour $ligne[plateforme]\"></a></div></td>" );
printf("<td width=\"76\" class=\"menunongras\" bgcolor=\"#F2F2F2\" height=\"18\"><div align=\"center\">$dat</div></td>" );
printf("<td width=\"100\" class=\"menunongras\" bgcolor=\"#D9D9D9\" height=\"18\"><div align=\"center\">" );
commentaire($ligne[id]);
printf("</div></td>" );
printf("<td width=\"118\" class=\"menunongras\" bgcolor=\"#FFFFFF\" height=\"18\"><div align=\"center\"><a href=\"vote.php?marque=$marque&modele=$modele&id
vote=$ligne[id]&titre=$title\">$nbre_etoile2</a>
</div></td>" );
printf("</tr>" );
printf("<tr bgcolor=\"#FFFFFF\"><td colspan=\"6\" height=\"1\"><img src=\"img/pix.gif\" width=\"1\" height=\"1\"></td></tr>" );
}
?>

Reply

Marsh Posté le 11-01-2002 à 23:28:13    

:??: je vois pas ... comment sais-tu que la requête ne retourne qu'un résultat ? que vois tu s'afficher à la place de ce que tu attends ?
 
déjà, essaye une boucle toute simple :
 
$n = 0;
while ($ligne = mysql_fetch_array($resultat))  
{  
  echo $ligne[0] . ' ' . $ligne[1] . '<br>'; // par exemple ..
  $n++;
}
echo $n . ' résultats';

Reply

Marsh Posté le 11-01-2002 à 23:33:28    

Dans mon tableau, il ne s'affiche qu'une ligne, tout simplement.
Moi, j'en attends 2  :??:  
 
Je vais essayer une boucle simple !

Reply

Marsh Posté le 11-01-2002 à 23:40:45    

Bon, j'ai trouver !!!!
 
J'ai déconner, en fait il y avais mysql_result($resultat, $i, "titre" ); en haut de ma page qui me servais a récupérer le titre le celle-ci !
 
Donc, c'est ca qui foutais la merde !  :fou:  
 
M'enfin, on a trouver !!!
 
Merci encore. ;)

Reply

Marsh Posté le 11-01-2002 à 23:44:09    

:hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed