Recherche un script pour afficher la liste des enregistrements en fonction de le [Résolu]

Signaler
Messages postés
25
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 octobre 2012
-
Messages postés
25
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 octobre 2012
-
Bonjour,

J'aimerais afficher sur une page la liste de toutes les lettres de l'alphabet permettant d'afficher tous les enregistrements commençant par celle-ci par un click sur la lettre.

La lettre affichée devraient être un lien que si la table contenant les enregistrements en contient au moins un qui commence par "la dite" lettre.

Quelqu'un peut il m'aider ?

Merci d'avance

7 réponses

Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
ca depend du type de bse de donnees, fut que tadapte le nom de fonctions.

en gros le principe est le suivant



<?

$req = "SELECT DISTINCT UCASE(SUBSTRING(champ,0,1)) as
PremiereLettreEnMajuscule FROM maTable ORDER BY
PremiereLettreEnMajuscule";

//.....execution et recuperation

while ($resultat= fetch(...)) {

echo "$resultat - "

}

echo "
"



if (isset($_POST['lettre'])) {

$req = "SELECT * FROM MaTable WHERE champ LIKE '" . $_POST['lettre'] . "%'";

//... affichage du resultat

}

?>
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
normal mon code est pas complet du tout.

si tu utilise mysql, il faut que tu fasse un truc du genre :



$res = "requete sql";

$res = mysql_query($req, $connection);

while ($ligne = mysql_fetch_array($res)) {

echo $ligne['unChamp'];

}

mysql_free_result($res);



Attention, j'ai bien dis un truc dans le genre
Messages postés
25
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 octobre 2012

Voilà j'ai copié et adapté le code :

$req = "SELECT DISTINCT UCASE(SUBSTRING(Nom,0,1)) as PremiereLettreEnMajuscule FROM Clients ORDER BY PremiereLettreEnMajuscule";
$result = @mysql_query($req);
//.....execution et recuperation
while ($resultat = mysql_fetch_array($result)) {
echo "$resultat - ";
echo $resultat[Nom];
}
echo "
";
mysql_free_result($result);

Et bien que la table "Clients" contienne 4 enregistrements, commençant par A, B, C, E, cela ne m'affiche qu'une seule fois "Array - "

Merci beaucoup pour votre aide
Messages postés
25
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 octobre 2012

En modifiant légèrement la requête cela fonctionne parfaitement bien

$req = "SELECT DISTINCT UCASE(SUBSTRING(NomDuChamp,1,1)) as PremiereLettreEnMajuscule FROM NomDeLaTable ORDER BY PremiereLettreEnMajuscule";

Merci beaucoup
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
8
Aller !



En attendant que ma soupe soit cuite...



Ben euh...

Pour passer en revue toutes les lettres :

$dep = ord('A');

$fin = $dep + 26;

for($i=$dep; $i<=$fin; $i++) {

$la_dite_lettre = chr($i); // Là tu auras toutes les lettres de l'alphabet en majuscule

}



Dans cette boucle, rien ne t'empêche d'introduire une requete SQL ... etc ...



Si C Bon Fo L'Dir !



A+
Messages postés
25
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 octobre 2012

Merci beaucoup à vous deux,

Je vais investiguer le code de Guillemouze qui me semble plus accessible pour un béotien comme moi.

Mais pour l'instant cela renvoie uniquement "Array - " et non pas les premières lettres.

A suivre
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



SELECT champ FROM table WHERE LEFT(champ,1)='a'



par exemple



ensuite un mysql_close() après le mysql_query() et ensuite un mysql_fetch_row() pour récupérer les résultats :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>