Page 1 sur 1

double boucle pour tout avoir ... probleme

Posté : 08 févr. 2006, 19:06
par delime
Bonjour a vous une nouvelle fois je viens demander votre aide :D

je fais deux boucle, car deux tables a lister.

mes tables : une table client, une table pc

Je veux afficher le nom du client avec le bon pc, jusqu'ici j'ai jamais le bon nom, tout les pc s'affiche bien, mais c'est le dernier nom de ma base, qui s'affiche a cote du pc.


voici mon code :
while(list($idclient,$nom,$telephone, $gsm) = mysql_fetch_array($sql))
 
 {
  while(((list($idmachine,$nommachine,$dateheure, $assemblage,$statut,$urgence,$clientid ) = mysql_fetch_array($res))  ) 
   {

echo "<tr bgcolor=\"#FF8888\">  "; ?>
      <form method="post" name="ok" id="ok" action="statut2.php?variable=<?echo $idmachine ?>">
      <?php echo "<td> $idclient</td>".
   "<td><a href=\"ajoutclient.php?var=$nom\">$nom ==> $nommachine</a></td>";



....


}

}
Voila ce que j'en pense :

il faudrai trouve un moyen genre ($idclient==$clientid) a rajouter dans la condition, et apres qu'il augmente clientid de 1 quelque chose du style. Mais je sais pas trop qu'en pensez vous???


Merci d'avance

Posté : 08 févr. 2006, 19:10
par VaN
Si j'etais toi je ferai une seule requete :
$sql = "SELECT idclient, nom, telephone, gsm, idmachine, nommachine, dateheure, assemblage, statut, urgence, clientid
FROM client, pc
WHERE idclient = clientid";
$query = mysql_query($sql);
while($result = mysql_fetch_array($query))
{
//affichage
}
2 tables ne veut pas forcement dire 2 requetes : )

avec ça, tu va recuperer a chaque tour de boucle des informations liées par l'id client.

Posté : 08 févr. 2006, 19:14
par Invité
Merci mille fois ca MARCHEEEEEEEEEEEEEEEEEEEE lol

c'est car pour les insert et update on doit le faire en deux requete alors j'ai prit cette habitude :$

Posté : 08 févr. 2006, 19:21
par VaN
penses au tag [RESOLU] : )

(au passage, une info qui pourra te servir, au cas ou deux champs de tables différentes ait le meme nom : tu peux les différencier en ajoutant le nom de table avant :
WHERE table1.nom_du_champ = table2.nom_du_champ
ça peut toujours servir : )