Recherche un script pour afficher la liste des enregistremen

Eléphanteau du PHP | 15 Messages

01 sept. 2005, 22:22

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
Gecko

Mammouth du PHP | 19672 Messages

01 sept. 2005, 22:28

Dans un premier temps, il te faut faire une requête SQL listant tous les mots par ordre alphabétique.

Ensuite, tu fais le tour de la liste des mots pour créer un tableau indexé contenant la première lettre de chaque mot en sauntant le tour si la lettre est déjà présente (inutile d'enregistrer les doublons dans le tableau).

Dans un second temps, tu construis un tableau indexé avec toutes les lettres de l'alphabet:

Tu crée ta liste de lettres pour l'affichage et tu vérifie pour chacune d'elle si elle est présente dans le tableau créé avec la liste de mots: si tu la trouves, tu fais un lien hyper-texte, sinon, tu affiches la lettre normalement.

Est-ce que ce schéma te semble logique ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 15 Messages

01 sept. 2005, 22:45

Le shèma me semble correct, mais le problème est que je ne sais pas faire tout ce que tu décris.

Je suis un néophite en PhP et je bricole, mais là visiblement cela dépasse mes ompétences !!

Merci de votre petite aide
Gecko

Mammouth du PHP | 19672 Messages

01 sept. 2005, 23:31

Dans un premier temps alors, déménagement du sujet vers le forum approprié :arrow: "Débuter en PHP".

Ici, il faut un minimum de connaissances de base, c,est pour ça que je n'ai pas détaillé davantage.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 19672 Messages

01 sept. 2005, 23:31

As-tu codé quelque chose qu,'on ait une base de départ ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 15 Messages

01 sept. 2005, 23:37

Voici mon début de code, mais cela ne renvoie pas les lettres, cela m'affiche juste "Array - ".

J'ai été un peu aidé sur ce coup là
$req = "SELECT DISTINCT UCASE(SUBSTRING(Nom,0,1)) as PremiereLettreEnMajuscule FROM Clients ORDER BY PremiereLettreEnMajuscule";
$result = @mysql_query($req);
//.....execution et recuperation
//while ($resultat= fetch(...)) {
while ($resultat = mysql_fetch_array($result)) {
    echo "<a href='mapage.php?lettre=$resultat'>$resultat</a>  -   ";
}
echo "<br>"

//if (isset($_POST['lettre'])) {
//    $req = "SELECT * FROM Clients WHERE Nom LIKE '" . $_POST['lettre'] . "%'";
    //... affichage du resultat
//}
?>
// les dernières lignes sont en commentaires car je n'ai pas encor testé cela.
Gecko

Mammouth du PHP | 19672 Messages

02 sept. 2005, 08:08

Intéressant : j'ai fait quelques tests sur la requête pour en arriver à un résultat en mettant la position de départ à 1 et non à 0, ce qui donnerait :

Code : Tout sélectionner

SELECT DISTINCT(UCASE(SUBSTRING(Nom,1,1))) as PremiereLettreEnMajuscule FROM Clients ORDER BY PremiereLettreEnMajuscule ;
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 15 Messages

02 sept. 2005, 09:20

Merci beaucoup c'est parfait car cela fonctionne !!!
Gecko