8791 sujets

Développement web côté serveur, CMS

Bonjour,

J'essaie de faire un tableau mais les données sont en doubles et je ne vois pas pourquoi.



$reponse = mysql_query("SELECT * FROM `ATS_sondage` where passeport='260250' ORDER BY id") or die(mysql_error());


$i = 0;
while ($donnees = mysql_fetch_array($reponse) ){
     $j = 0;
     foreach($donnees as $donnee){
        $data[$j][$i] = $donnee;
        $j++;
     }
     $i++;
}
 
print_r ($data);
Salut
la doc a écrit :

En utilisant MYSQL_BOTH (défaut), vous récupèrerez un tableau contenant des indices associatifs et numériques.

(lien vers la doc)
Les valeurs sont donc en double, 1 fois indexées numériquement, 1 autre fois indexées par le nom du champ.
Solution : préciser dans mysql_fetch_array quel indice tu veux.
a+
Modifié par jeje (14 Sep 2007 - 21:00)
Je ne suis pas familier avec les array mais j'ai fait quelques tests et mes données sont en double.

Array (
[0] => Array ( [0] => 1 )
[1] => Array ( [0] => 1 )
[2] => Array ( [0] => 99.159.70.132 )
[3] => Array ( [0] => 99.159.70.132 )
[4] => Array ( [0] => 2007E )
[5] => Array ( [0] => 2007E )
[6] => Array ( [0] => U12 )
[7] => Array ( [0] => U12 )
[8] => Array ( [0] => Local )
[9] => Array ( [0] => Local )
Bonsoir,

comme l'a dit jeje ce comportement est celui par défaut de mysql_fetch_array(). Qui retourne:
Array(
 [0] => 1,
 ['col0'] => 1,
 [1] => 99.159.70.132,
 ['col1'] => '99.159.70.132'
)


La solution consiste à fournir un 2eme argument spécifiant que tu ne souhaites les résultats qu'avec un des index (cf le lien de jeje pour savoir comment le faire).

Un alternative est de remplacer mysql_fetch_array() par mysql_fetch_row() qui ne retourne qu'un index numérique et est de surcroit plus rapide.
Modifié par Necromantik (14 Sep 2007 - 21:18)
Merci beaucoup!

Les réponses que je veux afficher sont au champs 76 et plus, comment je fais pour afficher leur contenu.

Merci!

Note: aussi, je sais que je devrai ajouter des champs éventuellement, est-ce dangereux que mes réponses soient erronées
Modifié par fourniey (14 Sep 2007 - 21:47)