Liste alphabétique et appel base mysql

winzip123 Messages postés 5 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 mars 2007 - 5 mars 2007 à 11:40
winzip123 Messages postés 5 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 mars 2007 - 5 mars 2007 à 17:35
Bonjour à tous,


Voilà, j'ai une base mysql contenant le nom de tous les pays et j'aimerais afficher sur une page la liste des pays commençant par chaque lettre. Exemple :


Sur ma page j'ai A B C D E F..... Z et j'aimerais que qd on clique sur A on affiche les pays commençant pas A et ainsi de suite


Le problème c'est que je ne sais pas quel est le lien à donner dans le
menu A B C .... Z pour chaque lettre, je ne vais pas créer un fichier
php qui appel la base pour chaque lettre quand même ? ( ça ferait 27
fichier php )

Je ne sais vraiment pas comment faire et j'ai potagé toute la nuit
dessus. Je me suis mis depuis peu au PHP.. Si quelqu'un pouvait m'aider
j'en serais très reconnaissant ....


Merci  ! 

7 réponses

cs_morpheus57 Messages postés 121 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 30 décembre 2010
5 mars 2007 à 11:56
Alors, je vais essayer d'être clair :

Tu as un fichier list.php.
Ce fichier tu l'appel avec une url du type : list.php?letter=A

Du coup dans ton code, tu vas pouvoir récupérer la lettre sur laquelle l'utilisateur à cliqué grâce à : $_GET['letter']. Et tu construit ta requête en fonction de ce paramètre.

Encore une petite chose :
Je te conseil de bien tester ce que tu vas recevoir dans $_GET['letter'] : un utilisateur malveillant pourrais mettre autre chose que A ou B ou C, ...
Regardes du côté des requêtes paramétrés et de l'injection SQL.
0
winzip123 Messages postés 5 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 mars 2007
5 mars 2007 à 12:03
Merci beaucoup pour ta réponse ! Je suis assez débutant et je ne capte pas tous ce que tu me dis. Pour l'instant j'ai une page list.php :
$requete = mysql_query("SELECT * FROM liste WHERE Pays LIKE 'lettre%'"); // demande tous les pays commençant par la lettre
while ($ligne = mysql_fetch_array($requete)) {
   print "<tr>
   <td>".$ligne["Pays"]."</td>
   <td>".$ligne["Prix"]."</td>
   </tr>"; 

Qu'est ce que je dois modifier dans ce fichier list.php
Et quel lien je dois mettre aux lettre A B C D ...Z du menu ?
Merci pour ta réponse...
0
winzip123 Messages postés 5 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 mars 2007
5 mars 2007 à 13:37
JE voulais te dire merci [auteurdetail.aspx?ID=735402 morpheus57] car ça marche maintenant grace à toi  :)))
Peux tu m'expliquer le conseil que tu m'as donné ?
0
cs_morpheus57 Messages postés 121 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 30 décembre 2010
5 mars 2007 à 13:51
Alors pour le lien je vois bien un truc comme ça :
A

En ce qui concerne le php, je vois un truc du style :
$letter = mysql_escape_string($_GET['letter']);
$requete = mysql_query("SELECT * FROM liste WHERE Pays LIKE '" . $letter . "%' ORDER BY pays");
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
winzip123 Messages postés 5 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 mars 2007
5 mars 2007 à 14:40
ok merci et comment tester ce qui va être mis dans $_GET['letter']   ???
c'est la commande mysql_escape_string c'est ça ?
Encore une question : comment afficher "aucun enregistrement trouvé lorqu'on clic sur la lettre x ( pas de pays ) ?? merci

Tu as dis aussi : un utilisateur malveillant pourrais mettre autre chose que A ou B ou C, ...
Regardes du côté des requêtes paramétrés et de l'injection SQL.

Que voulais tu dire par là ?
0
cs_morpheus57 Messages postés 121 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 30 décembre 2010
5 mars 2007 à 14:57
Pour ce qui est de mysql_escape_string, regardes ici c'est très bien : http://lu.php.net/manual/fr/function.mysql-escape-string.php.
En ce qui concerne les requêtes paramétrées va voir ici : http://lu.php.net/manual/fr/function.PDOStatement-execute.php
Et finalement pour l'injection SQL : http://fr.wikipedia.org/wiki/Injection_SQL
0
winzip123 Messages postés 5 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 mars 2007
5 mars 2007 à 17:35
OK je regarde ça et merci encore pour ta patience et ton aide !
0
Rejoignez-nous