Aller au contenu

classer par ordre alphabetique


skettles

Sujets conseillés

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 :rolleyes:

Si on pouvait me 'débloquer' sur ce coup, ça m'arrangerait bien !

@+ et... bonne prog à tous :shake:

Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

+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" :D

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... :P

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 !

Lien vers le commentaire
Partager sur d’autres sites

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 :lol:

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

Lien vers le commentaire
Partager sur d’autres sites

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 :fou:

@+ et... bon dimanche ;)

Lien vers le commentaire
Partager sur d’autres sites

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 :D

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 :P

Ne sous-estime pas SQL tout de même :D

Lien vers le commentaire
Partager sur d’autres sites

Hum, je ne pense pas t'inquiète pas biggrin.gif

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 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 :shake:

Je m'y remets demain lundi (aujourd'hui y'a messe :lol: )

@+ et... bonne prog !

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...