CHARGER LES DONNÉES D'UNE BDD MYSQL DANS UN COMBOBOX EN GÉRANT LES <OPTGROUP>

Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
- - Dernière réponse : cs_Anthomicro
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
- 31 août 2005 à 15:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31321-charger-les-donnees-d-une-bdd-mysql-dans-un-combobox-en-gerant-les-optgroup

Afficher la suite 
malalam
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17 -
hello,

c'est joli en tous cas :-)
Allez, un detail :
mysql_fetch_row () => renvoie un tableau indexe numeriquement
mysql_fetch_assoc () => renvoie un tableau associatif
mysql_fetch_array () => renvoie un tableau qui laisse le choix entre des clefs numeriques et des clefs associatives

Conclusion : mysql_fetch_array () est totalement inutile...
Dans ton cas, puisque tu utilises un tableau associatif, utilise plutot mysql_fetch_assoc ().

Sinon ma foi, bien :-)
NewSky
Messages postés
86
Date d'inscription
dimanche 27 janvier 2002
Statut
Membre
Dernière intervention
20 février 2009
-
Merci pour ton commentaire malalam.
Pour ce qui est des tableaux, c'est parce que je suis débutant en php et que je n'utilise que fetch_array!! Mais je vais de ce pas scruter le manuel de PHP pour comprendre la différence entre tout ces tableaux!
NewSky
Messages postés
86
Date d'inscription
dimanche 27 janvier 2002
Statut
Membre
Dernière intervention
20 février 2009
-
Bon, je suis aller regarder le manuel de PHP et, pour ce que ça interresse et qui ont la flème d'aller regarder, je pense avoir compris ça :

mysql_fetch_array est, par défaut, équivalent au 2 autres types de tableaux c'est à dire que l'on peut écrire soit :
$theme=$data_theme['theme'];
soit:
$theme=$data_theme[0];
le résultat étant le même.

En fait, mysql_fetch_array peut recevoir 2 arguments :
array mysql_fetch_array ( resource result , int result_type )
avec result_type une constante qui peut être MYSQL_ASSOC , MYSQL_NUM et MYSQL_BOTH .

Par défaut, c'est MYSQL_BOTH qui est choisit.
Si on lui met MYSQL_ASSOC, on a un tableau associatif équivalent à mysql_fetch_assoc
et si on lui met MYSQL_NUM, on a un tableau indexé numériquement équivalent à mysql_fetch_row.

Ce qui est important de souligner, c'est que, je cite : "mysql_fetch_array N'est PAS plus lente que mysql_fetch_row , tandis qu'elle ajoute un confort d'utilisation notable".

Donc, peut-être pour être plus clair dans le code, il vaut mieux utiliser mysql_fetch_array, mais apparament, l'utilisation de mysql_fetch_array ne poserait aucun problème!
Dites-moi si j'ai mal compris!

Pour plus d'information sur
- mysql_fetch_array :
http://www.manuelphp.com/php/function.mysql-fetch-array.php
- mysql_fetch_assoc :
http://www.manuelphp.com/php/function.mysql-fetch-assoc.php
- mysql_fecth_row :
http://www.manuelphp.com/php/function.mysql-fetch-row.php

J'espère avoir éclairci un peu cet histoire de tableaux pour les débutants comme moi!

Bonne prog @ tous...
malalam
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17 -
Non, tu as bien compris :-)
Mais pourquoi utiliser cette constante et rallonger l'ecriture alors que mysql_fetch_assoc et mysql_fetch_row existent ?
Soit on a besoin de l'un, soit de l'autre, de toutes facons (en general, assoc est le plus pratique).
A moins d'indication contraire dans la doc php, evidemment :-)
NewSky
Messages postés
86
Date d'inscription
dimanche 27 janvier 2002
Statut
Membre
Dernière intervention
20 février 2009
-
Je comprend tout à fait l'histoire de la constante, mais commme par défaut, cette constante est MYSQL_BOTH, on a pas besoin de la rajouter et on peut utiliser le tableaux retourné soit en associatif, soit en indexé à son choix.

Pour la rapidité, danc le manuel, ils disent juste que assoc n'est pas plus lent que row et que array n'est pas plus lent que row. Mais il ne compare pas array et assoc. Donc, mystère...

Je pense cependant que tu as raison, et ne serait-ce que pour des raisons de compréhension du code, mieu vaut utiliser assoc ou row selon l'utilisation!