skettles Posté 12 Mars 2005 Posté 12 Mars 2005 Salut à tous ! Petit problème pour trier par ordre alphabetique suite à une requête SQL dans une boucle foreach ! Je dois donc faire le tri par ville sur les 95 tables (95 départements) dans ma base de données pour cela j'ai crée un array de ces tables pour l'inclure à la requête. Le code: <?php$tab_dep=array('tbl_01', 'tbl_02', 'tbl_03', 'tbl_04', 'tbl_05', 'tbl_06', 'tbl_07', 'tbl_08', 'tbl_09', 'tbl_10', 'tbl_11', 'tbl_12', 'tbl_13', 'tbl_14', 'tbl_15', 'tbl_16', 'tbl_17', 'tbl_18', 'tbl_19', 'tbl_20', 'tbl_21', 'tbl_22', 'tbl_23', 'tbl_24', 'tbl_25', 'tbl_26', 'tbl_27', 'tbl_28', 'tbl_29', 'tbl_30', 'tbl_31', 'tbl_32', 'tbl_33', 'tbl_34', 'tbl_35', 'tbl_36', 'tbl_37', 'tbl_38', 'tbl_39', 'tbl_40', 'tbl_41', 'tbl_42', 'tbl_43', 'tbl_44', 'tbl_45', 'tbl_46', 'tbl_47', 'tbl_48', 'tbl_49', 'tbl_50', 'tbl_51', 'tbl_52', 'tbl_53', 'tbl_54', 'tbl_55', 'tbl_56', 'tbl_57', 'tbl_58', 'tbl_59', 'tbl_60', 'tbl_61', 'tbl_62', 'tbl_63', 'tbl_64', 'tbl_65', 'tbl_66', 'tbl_67', 'tbl_68', 'tbl_69', 'tbl_70', 'tbl_71', 'tbl_72', 'tbl_73', 'tbl_74', 'tbl_75', 'tbl_76', 'tbl_77', 'tbl_78', 'tbl_79', 'tbl_80', 'tbl_81', 'tbl_82', 'tbl_83', 'tbl_84', 'tbl_85', 'tbl_86', 'tbl_87', 'tbl_88', 'tbl_89', 'tbl_90', 'tbl_91', 'tbl_92', 'tbl_93', 'tbl_94', 'tbl_95');foreach($tab_dep as $key => $value){ $req = _AT_mysql_query("SELECT DISTINCT city FROM $value"); # or die ('Erreur dans la requête '.$req.'<br />'.mysql_error()); while($data=mysql_fetch_assoc($req)) { echo "<option value=\"dptselect.php\">".$data['city']."</option>\n"; } mysql_free_result($req);}?> Donc le problème c'est que mon script classe par ordre d'extraction de la table tbl_01 etc... ce qui fait que je me retrouve avec une liste déroulante qui ressemble à ceci: Toulouse Bordeaux Lyon Chambéry Annecy .../... Et ce n'est pas ce que je voudrais afficher mais plutôt comme ça: Annecy Bordeaux Chambéry Lyon Toulouse .../... PS: je suis pas débutant en PHP mais moyen Si on pouvait me 'débloquer' sur ce coup, ça m'arrangerait bien ! @+ et... bonne prog à tous
petit-ourson Posté 12 Mars 2005 Posté 12 Mars 2005 Tu mets tous tes résultats dans un unique tableau a la place de faire des "echo" dans ton while puis tu tries ce tableau, puis tu crées ta liste. A part cela, j'ai du mal à me réprésenter ton modèle conceptuel de données avec 1 table par département ... mais là n'est pas le sujet ;o)
Vincent Posté 13 Mars 2005 Posté 13 Mars 2005 Tu mets tous tes résultats dans un unique tableau a la place de faire des "echo" dans ton while puis tu tries ce tableau, puis tu crées ta liste. tu peux faire encore plus simplement : rajouter une condition de tri dans tra requete SQL : SELECT DISTINCT city FROM $value order by city A part cela, j'ai du mal à me réprésenter ton modèle conceptuel de données avec 1 table par département ... mais là n'est pas le sujet ;o) <{POST_SNAPBACK}> pareil
Sarc Posté 13 Mars 2005 Posté 13 Mars 2005 +1, je pense que tu t'es pris la tête alors que tu aurais pu rajouter la colonne "département" dans la table avec les "cities" Donc forcément, après, c'est plus dur ! Quand on n'a pas la base de donnée bien foutue, tout devient plus difficile... Enfin bon, petit ourson t'a donné la meilleure solution à ton problème ! ... Mais tout de même quoi :/ tu multiplies les requêtes SQL !
Dan Posté 13 Mars 2005 Posté 13 Mars 2005 Salut Skettles, Je ne peux que marquer mon accord avec ce qu'on t'a dit plus haut: 95 requêtes pour sortir une liste de villes, c'est énorme. Heureusement que tu ne programmes pas un forum Je pense qu'avant d'aller plus loin, tu devrais revoir le modèle conceptuel de données. Parce que là tu vas la tête droit dans le mur sur le plan programmation. Dan
skettles Posté 13 Mars 2005 Auteur Posté 13 Mars 2005 Salut ! Je pense qu'avant d'aller plus loin, tu devrais revoir le modèle conceptuel de données. Parce que là tu vas la tête droit dans le mur sur le plan programmation. Bon OK ! Je vais revoir tout ça mais alors une dernière petite question: Si je réalise une table unique pour tous ça ne serais-je pas limité par le nombre de requêtes simultanées sur une seule et unique table ?!? En tout cas, merci de m'avoir conseillé ! Quand on programme seul dans son coin on arrive à ne plus faire trop attention à ce que l'on fait @+ et... bon dimanche
Sarc Posté 13 Mars 2005 Posté 13 Mars 2005 Si je réalise une table unique pour tous ça ne serais-je pas limité par le nombre de requêtes simultanées sur une seule et unique table ?!? Hum, je ne pense pas t'inquiète pas Le forum a tous ses messages ou presque (jconnais pas IPB par coeur) dans la même table, et avec ses 300 visiteurs connectés en même temps, on le voit pas défaillir... Donc je pense que si ton hébergement est bon et que tu n'as pas 10000 visiteurs en même temps, ça devrait tourner Ne sous-estime pas SQL tout de même
skettles Posté 13 Mars 2005 Auteur Posté 13 Mars 2005 Hum, je ne pense pas t'inquiète pas biggrin.gifLe forum a tous ses messages ou presque (jconnais pas IPB par coeur) dans la même table, et avec ses 300 visiteurs connectés en même temps, on le voit pas défaillir... Donc je pense que si ton hébergement est bon et que tu n'as pas 10000 visiteurs en même temps, ça devrait tourner tongue.gif Ne sous-estime pas SQL tout de même biggrin.gif Bon ben y'a plus ka !! Merci pour vos conseils... éclairés Je m'y remets demain lundi (aujourd'hui y'a messe ) @+ et... bonne prog !
Portekoi Posté 13 Mars 2005 Posté 13 Mars 2005 Salut, Tu fais une table ville avec : Une colonne ID en auto increment, une colonne nom, une colonne id_departement Une table département : Une colonne ID en auto increment, une colonne nom En suite tu peux implémenter la table ville avec une colonne population, superficie etc... Bon courage Portekoi
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant