Php mysql fetch_array

Fermé
Omizu Messages postés 6 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 14 décembre 2007 - 14 nov. 2006 à 11:17
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 14 nov. 2006 à 11:47
Bonjour,

(mac OS9, hebergement du site sous linux)

Je fais un programme utilisant PHP et MySQL. Je récupère des données dans une base de données. Le truc qe je ne comprends pas et qui commence a m'ennerver est qu'à chaque fois que je fais une requête comme :

$magasin_liste_tab=mysql_query("select * from offre_magasin where id_offre='1' and cp=06000");
$magasin_liste=mysql_fetch_array($magasin_liste_tab);

while($magasin_liste=mysql_fetch_array($magasin_liste_tab))
{
echo $magasin_liste["cp"];
}

j'obtiens à l'affichage 2 fois 06000 tandis que j'en ai trois dans ma base. Se problem se retrouve dans chaque requête similaire, le code ne m'affiche jamais la premier valeur de la lliste obtenue par la requette sql.

Si quelqu'un sait pourquoi et comment résoudre se probleme ca m'arrangerais.

Merci.

2 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
14 nov. 2006 à 11:25
Si tu otais ton premier fetch tu verrais que ca va beaucoup mieux ;)

 $magasin_liste_tab=mysql_query("select * from offre_magasin where id_offre='1' and cp=06000");

while($magasin_liste=mysql_fetch_array($magasin_liste_tab))
{
echo $magasin_liste["cp"];
} 


0
Omizu Messages postés 6 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 14 décembre 2007
14 nov. 2006 à 11:37
Oui je répond à moi même car je viens de trouver. C'est du à la redondance du code contenu dans la parenthèse du while. Parcontre pourquoi cette redondance suprime t elle des valeure je sais pas.
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
14 nov. 2006 à 11:47
Rien a voir avec une redondance...

Regarde le message que je t'ai laissé, ce n'est pas ce que tu pense, c'est parce qu'il ne faut pas faire un fetch avant ton autre fetch en boucle, car automatiquement ca va passer la premiere valeur de ton résultat de requete.

0