Recherche un script pour afficher la liste des enregistrements en fonction de le

Résolu
cs_Gecko62 Messages postés 25 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 octobre 2012 - 1 sept. 2005 à 22:09
cs_Gecko62 Messages postés 25 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 octobre 2012 - 2 sept. 2005 à 09:27
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

Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
1 sept. 2005 à 22:19
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

}

?>
3
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
1 sept. 2005 à 23:45
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
3
cs_Gecko62 Messages postés 25 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 octobre 2012
2 sept. 2005 à 00:02
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
3
cs_Gecko62 Messages postés 25 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 octobre 2012
2 sept. 2005 à 09:27
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
3

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

Posez votre question
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
1 sept. 2005 à 22:15
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+
0
cs_Gecko62 Messages postés 25 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 octobre 2012
1 sept. 2005 à 23:40
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
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 sept. 2005 à 23:57
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>
0
Rejoignez-nous