[CHRCH] Fct PHP

Statut
N'est pas ouverte pour d'autres réponses.

MbK_

Etudjant
slt a tous!

j'ai dans une BDD, une multitude de nom de ville et j'aimerais pouvoir afficher les donnée mais classées par ville.

Je me suis dit que j'allais faire un classement par lettre (de début de la ville)

avec des liens qui afficheraient toutes les villes dont le nom commencent par ...

Il me faudrait donc une fonction qui me retourne la premiere lettre d'une chaine qui en l'occurence serait le nom de la ville.

Auriez vous une idée?
 

Hacko

Elite
SubStr(Chaine texte,entier debut,entier longueur)


et voili et voila
 

Jereck

Α & Ω
Staff
"SELECT * FROM villes WHERE nom_ville LIKE ('$lettre%')"

$lettre :arrow: la variable qui contient la lettre
% :arrow: Joker, équivalent SQL de l' * dans une recherche "classique"
 

Carambar

Elite
Tu peut déjà faire un tri en utilisant :

SELECT FROM TABLE ORDER BY [CRITERE] ASC|DESC
 
1er
OP
MbK_

MbK_

Etudjant
Jereck a dit:
"SELECT * FROM villes WHERE nom_ville LIKE ('$lettre%')"

$lettre :arrow: la variable qui contient la lettre
% :arrow: Joker, équivalent SQL de l' * dans une recherche "classique"
ca fonctionne tres bien Merci

(pour ceux qui le veulent, c'est pas sensible a la casse ^^ )
 

Smart

Touriste
sinon (je suppose que tu le sais déjà?) pour accéder au premier élément d'une chaine $chaine : $chaine[0].
 

Xou

I ♥ rien
SELECT FROM TABLE ORDER BY [CRITERE] ASC|DESC[/quote]

Cette requete me semble mieux pour ce que tu veux en fait

Elle utilise moins de ressources que celle de Jereck

(J'ai lu ça je sais plus ou)
 
1er
OP
MbK_

MbK_

Etudjant
Smart a dit:
sinon (je suppose que tu le sais déjà?) pour accéder au premier élément d'une chaine $chaine : $chaine[0].
c'est ca que je cherchais justement!

mais il ne faut pas juste les trier par ordre alphabetique mais faire une sorte de table des matiere avec les premiere lettres.

Enfin je l'ai fais avec la maniere de Jereck.

Merci a tous ;)
 

Jereck

Α & Ω
Staff
Xyauh a dit:
SELECT FROM TABLE ORDER BY [CRITERE] ASC|DESC
Cette requete me semble mieux pour ce que tu veux en fait

Elle utilise moins de ressources que celle de Jereck

(J'ai lu ça je sais plus ou)[/quote]avec ta requète, TOUS les éléments de la table sont renvoyés, pas seulement ceux qui commencent par une certaine lettre.
 

Xou

I ♥ rien
Jereck a dit:
avec ta requète, TOUS les éléments de la table sont renvoyés, pas seulement ceux qui commencent par une certaine lettre.
Woué juste, tout dépend de ce qu'il veut en fait.
Mais que j'y pense, pour juste renvoyer la lettre, vaudrait imeux pas utiliser un distinct ?
Car ici il va se chopper plusieurs fois la mm lettre (je suis pas tout à fait sûr, mais me semble en tout k)
 

Jereck

Α & Ω
Staff
la clause DISTINCT empêcherait de renvoyer plusieurs fois la même ville.
Tandis que la sélection LIKE "a%" renvoie toutes les villes qui commencent par a. Mais il renvoie les villes, il ne renvoie pas que les "a".
Disons que j'ai comprit son code comme étant une liste où tu as un menu avec les 26 lettres.
 

Xou

I ♥ rien
En fait je voyais comme exemple

Kyoto
Liège
Louvain
Namur

menu : K L N

Maintenant oui faut voir l'utilité qu'il en aura :p
Mon avis j'étais un peu trop dans le cake hier :oops:
 

Jereck

Α & Ω
Staff
ouais ... évidemment, si le menu doit être dynamique, il faut bien rappatrier une fois la totalité de la table.

Ou alors, créer le menu dans une autre table au moment de l'ajout des villes.
Et à l'affichage du menu, il suffira de rapatrier cette table-là (forcément plus petite, vu que de 26 enregistrements max)
 
1er
OP
MbK_

MbK_

Etudjant
Jereck a dit:
la clause DISTINCT empêcherait de renvoyer plusieurs fois la même ville.
Tandis que la sélection LIKE "a%" renvoie toutes les villes qui commencent par a. Mais il renvoie les villes, il ne renvoie pas que les "a".
Disons que j'ai comprit son code comme étant une liste où tu as un menu avec les 26 lettres.
d'après tout ce que vous dites, c'est certainement la selection LIKE "a%" qui convient le mieux pour ce que je cherche a faire.

Merci a tous ;)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut