Php mysql fetch_array

Omizu Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   -
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.

A voir également:

2 réponses

kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
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   Statut Membre Dernière intervention  
 
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 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
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