Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1586 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Index d'annuaire : Vérifier que la première lettre existe dans un nom

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Index d'annuaire : Vérifier que la première lettre existe dans un nom

n°2072806
thekeke
La vie est belle !
Posté le 29-04-2011 à 17:24:15  profilanswer
 

Bonjour,
 
Je n'arrive pas à trouver comment faire mais c est surement super simple.
 
J'ai un annuaire de noms et je voudrais faire le menu où la personne doit selectionner la premiere lettre du nom pour que ça affiche la liste ( avec un WHERE nom like '$lettre%' ).
 
Par contre je ne sais pas comment faire pour avoir en haut le :
 
A  B  C   D  E  F  G  .... etc. en ne mettant des liens QUE s'il existe un nom dont la première lettre est celle d'un nom présent dans ma table des noms.
Donc en fait un truc pour scanner les noms de ma table et sortir les premières lettres...
 
Je pourrais faire un test des lettres une par une pour voir si la table me renvoie un résultat ou non... mais je suis sur qu'il y a plus simple non ?
 
Pouvez-vous m'aider ?


---------------
BattleTag : thekeke#2108 ajoutez moi ;)
mood
Publicité
Posté le 29-04-2011 à 17:24:15  profilanswer
 

n°2072998
billgatesa​nonym
Posté le 01-05-2011 à 11:13:47  profilanswer
 

Votre solution de regarder chaque lettre est la bonne.
 
Quand on début en programmation, on est souvent réticent à faire des boucles, pensant que c'est compliqué ou très coûteux en temps de traitement; Mais ce n'est ni l'un ni l'autre, et la boucle est un élément fondamental de la programmation. N'ayez donc pas peur des boucles (tout en sachant qu'il existe aussi des boucles implicites dans des fonctions tels que strpos() et les expressions régulières, qui sont utiles de temps en temps).

n°2073022
flo850
moi je
Posté le 01-05-2011 à 14:15:47  profilanswer
 

SELECT DIsTINCT  SUBSTRING(nom, 0, 1 ) FROm table  sera largement plus rapide que de charger l'integralité de l'annuaire en mémoire


Message édité par flo850 le 01-05-2011 à 14:16:16

---------------

n°2073248
rufo
Pas me confondre avec Lycos!
Posté le 02-05-2011 à 13:37:08  profilanswer
 

Clair, +1 pour la requête de flo850 mais avec une petite modification :
SELECT SUBSTRING(nom, 0, 1 ) AS PremiereLettre FROm table GROUP BY PremiereLettre ORDER BY PremiereLettre
 
GROUP BY est plus rapide que DISTINCT en général (sauf si l'optimiseur de requêtes du sgbd transforme le distinct en group by) et le ORDER BY permet d'avoir les premières triées dans le bon sens ;)


Message édité par rufo le 02-05-2011 à 13:39:08

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2073414
thekeke
La vie est belle !
Posté le 03-05-2011 à 09:30:30  profilanswer
 

Bonjour,
 
Merci pour vos réponses.
 
En effet billgatesanonym c'est vrai que j'ai parfois un peu peur de mettre trop de requete dans mes pages... mais en meme temps ça m'entraine parfois à trouver des astuces :-D ... je garde ton conseil en tout cas en mémoire.
 
Merci à flo850 et rufo, je vais tester votre requete. J'avoue que là à froid j'ai du mal à voir ce qu'elle fait/va retourner mais je suis sur que je réussir à la mettre en place :) (j'espere !!!)


---------------
BattleTag : thekeke#2108 ajoutez moi ;)
n°2073433
rufo
Pas me confondre avec Lycos!
Posté le 03-05-2011 à 10:00:42  profilanswer
 

ça prend la première lettre du champ "nom" dans la table "Table" et pour avoir qu'une instance de chaque lettre, on fait un group by (équivalent au distinct dans le résultat obtenu mais en plus rapide) et on trie (order by) par la première lettre (le AS nomme le champ obtenu en "PremiereLettre" )


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Index d'annuaire : Vérifier que la première lettre existe dans un nom

 

Sujets relatifs
Fichier index.htm tout fou !Supprimer un INDEX sur PHPMYADMIN
[Débutant en HTML]Qui pourrait vérifier mon code svp?verifier si champ vide
Notice: Undefined Index:verifier que le flux est bien chiffrer entre client et serveur
[PHP] arry_unique multidimentional + index d'arrayvérifier si Outlook est lancé
Index sur plusieurs clefs 
Plus de sujets relatifs à : Index d'annuaire : Vérifier que la première lettre existe dans un nom


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR