{MySQL} récupération de données en double [Résolu/Fermé]

Signaler
Messages postés
2
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
6 décembre 2009
-
Messages postés
2
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
6 décembre 2009
-
Bonjour,
je créer actuellement un site de vente et je me heurte à un problème de double retour de valeur après des requête sql.

je vais vous expliquer au fur et à mesure de mon script cela sera plus simple.

$SQL="SELECT prodid FROM produits WHERE fournisseur='$fournisseur'";
$res=mysql_query($SQL);
$rep=mysql_fetch_array($res);

//ici je récupère plusieurs id de produits et les met dans $rep par un mysql_fetch_array pour les préparer à un foreach.//

?>
<table class="sample">
<caption>Commandes</caption>
<tr><th>id de la commande</th><th>id du produit</th><th>quantité</th><th>id client</th><th>statut de la commande</th><th>modification du statut</th>
<?php
foreach($rep as $value)
{
// à partir de là mon $value vaut 2 fois mon id produit //
$SQL2="SELECT * FROM commandes WHERE prodid='$value'";
$res2=mysql_query($SQL2);
while($row=mysql_fetch_array($res2))
{
?>
<tr>
<td><?php echo $row[cmdid]?></td>
<td><?php echo $row[prodid]?></td>
<td><?php echo $row[qte]?></td>
<td><?php echo $row[dstid]?></td>
<td><?php echo $row[statut]?></td>
<td><a href="accept_c.php">Accepter</a> | <a href="refus_c.php">Refuser</a></td>
</tr>;
<?php
}
}
?></table><?php

Au final j'ai bien le produit qui s'affiche dans le tableau, mais 2 fois.
La solution doit être toute bête, et le problème vient certainement de ma mauvaise utilisation de la boucle foreach, étant débutant.

Merci d'avoir prit le temps de me lire.

1 réponse

Messages postés
2
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
6 décembre 2009

Après une nuit de sommeil et d'autres recherche j'ai trouver d'où venait le problème.

$rep=mysql_fetch_array($res);

sur cette ligne qui prépare $rep à passer par un foreach, il ne faut pas faire un mysql_fetch_arrray mais un mysql_fetch_row

$rep=mysql_fetch_row($res);