Liste de membres triés par ordre alphabétique
Résolu/Fermé
Angecorse
Messages postés
37
Date d'inscription
samedi 25 avril 2015
Statut
Membre
Dernière intervention
3 novembre 2016
-
25 avril 2015 à 07:59
Angecorse Messages postés 37 Date d'inscription samedi 25 avril 2015 Statut Membre Dernière intervention 3 novembre 2016 - 27 avril 2015 à 21:29
Angecorse Messages postés 37 Date d'inscription samedi 25 avril 2015 Statut Membre Dernière intervention 3 novembre 2016 - 27 avril 2015 à 21:29
A voir également:
- Liste de membres triés par ordre alphabétique
- Comment trier par ordre alphabétique sur excel - Guide
- Liste déroulante excel - Guide
- Classer les applications par ordre alphabétique iphone - Guide
- Triez la liste comme sur cette illustration (attention, on ne voit que le début …). quel est le mot formé par les 6 dernières lettres de la colonne code ? - Forum Excel
- Liste déroulante en cascade - Guide
1 réponse
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
27 avril 2015 à 15:08
27 avril 2015 à 15:08
Salut,
Quelques pistes de solutions possibles :
1. Tu peux utiliser la requête suivante pour récupérer la première lettre des noms de ta table membres :
Il suffit alors de parcourir les résultats pour générer la liste des lettres, par exemple :
2. Il faut modifier la requête de sélection des membres pour prendre en compte le paramètre 'lettre' si celui-ci existe :
Attention aux injections sql ! Dans l'exemple ci-dessus le paramètre $_GET['lettre'] est concaténé directement dans la requête sql (faille). Tu dois échapper ce paramètre avant la concaténation avec une des méthodes suivantes selon l'API utilisé :
- requête préparée ou PDO::quote() pour l'API PDO
- mysqli_real_escape_string() pour l'API Mysqli
Bon dév
Quelques pistes de solutions possibles :
1. Tu peux utiliser la requête suivante pour récupérer la première lettre des noms de ta table membres :
SELECT DISTINCT LEFT(firstname, 1) AS lettre FROM membres ORDER BY lettre
Il suffit alors de parcourir les résultats pour générer la liste des lettres, par exemple :
<a href="liste-membres.php?lettre=A">A</a> <a href="liste-membres.php?lettre=B">B</a> <a href="liste-membres.php?lettre=C">C</a>
2. Il faut modifier la requête de sélection des membres pour prendre en compte le paramètre 'lettre' si celui-ci existe :
if (!empty($_GET['lettre'])) { $membres = $db->query("SELECT id, titre, firstname, lastname, adress, resume FROM membres WHERE LEFT(firstname, 1) = '" . $_GET['lettre']) . "' ORDER BY firstname LIMIT $nbmembre"); } else { $membres = $db->query("SELECT id, titre, firstname, lastname, adress, resume FROM membres ORDER BY firstname LIMIT $nbmembre"); }
Attention aux injections sql ! Dans l'exemple ci-dessus le paramètre $_GET['lettre'] est concaténé directement dans la requête sql (faille). Tu dois échapper ce paramètre avant la concaténation avec une des méthodes suivantes selon l'API utilisé :
- requête préparée ou PDO::quote() pour l'API PDO
- mysqli_real_escape_string() pour l'API Mysqli
Bon dév
27 avril 2015 à 21:29
Oui, en règle générale j'encapsule les $_GET ;)
Je vais le mettre en oeuvre et reviens posté la solution si et quand tout sera ok ;)
See ya !