winzip123
Messages postés5Date d'inscriptionlundi 5 mars 2007StatutMembreDernière intervention 5 mars 2007
-
5 mars 2007 à 11:40
winzip123
Messages postés5Date d'inscriptionlundi 5 mars 2007StatutMembreDerniè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 ....
cs_morpheus57
Messages postés121Date d'inscriptionvendredi 31 mars 2006StatutMembreDernière intervention30 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.
winzip123
Messages postés5Date d'inscriptionlundi 5 mars 2007StatutMembreDerniè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...
winzip123
Messages postés5Date d'inscriptionlundi 5 mars 2007StatutMembreDerniè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é ?
cs_morpheus57
Messages postés121Date d'inscriptionvendredi 31 mars 2006StatutMembreDernière intervention30 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");
Vous n’avez pas trouvé la réponse que vous recherchez ?
winzip123
Messages postés5Date d'inscriptionlundi 5 mars 2007StatutMembreDerniè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.