Doublons dans la presentation de ma requête SQL ...

madmask
Invité n'ayant pas de compte PHPfrance

03 juin 2013, 15:49

Bonjour,
Dans mon code je cherche à obtenir une liste présentable qui reprends les entrées de ma table. Mon problème est que toutes les valeurs apparaissent en double alors qu'avec la même requête via Mysql workbench les résultats sont corrects.

Code : Tout sélectionner

$query = mysql_query("SELECT * FROM MaTable"); $i=0; while($donnees[$i] = mysql_fetch_array($query)){ $i++; } $tab_length=$i; for ($i=0;$i<=$tab_length;$i++){ echo "<p>"; echo $i; echo " : "; foreach ($donnees[$i] as $value){ echo $value; echo " "; } echo "</p>"; }


En gros j'obtiens une réponse du style :
"valeur1" "valeur 1" "valeur2" "valeur2" "valeur3" "valeur3"

"valeur1b" "valeur 1b" "valeur2b" "valeur2b" "valeur3b" "valeur3b"

Avec mon code.

Au lieu de,
"valeur1" "valeur2" "valeur3"
"valeur1b" "valeur2b" "valeur3b"
-

En faisant directement ma requête dans le GUI Mysql.

J'ai du louper un truc avec foreach je n'avais plus fait de php depuis des siècles et là je sèche ....
Merci d'avance pour votre aide.

Mammouth du PHP | 1029 Messages

17 juin 2013, 11:35

Bonjour tu dois utiliser mysqli, pour tes fonction MySQL, de plus un seule While est suffisant et si tu fais un fetch_array il faut dans les clés mettre le nom du champs que tu récupères
$query = mysqli_query("SELECT * FROM MaTable");
$i=0;
while($result = mysqli_fetch_array($query)){
 echo "<p>".$i. "  : ".$result['nom_du_champs']." "."</p>";
  $i++
}
L'expérience est la somme de toutes nos erreurs.

ViPHP
ViPHP | 2577 Messages

17 juin 2013, 13:50

Bonjour,

Le mysql_fetch_array($query) retourne soit un tableau avec
- soit des nombres comme clés,
- soit les noms de colonnes comme clés
- soit les 2 (par défaut)

Tu peux utiliser un second paramètre pour choisir MYSQL_NUM, MYSQL_ASSOC ou MYSQL_BOTH.

Edit : il serait temps de passer à mysqli au lieu de mysql. Ou passer à pdo