Prendre les Champs Commençant par un Caractère

Eléphant du PHP | 72 Messages

28 févr. 2006, 12:19

Bonjour !

Je me suis penché sur un système de tri alphabétique par lettre dont voici la requete qui fonctionne parfaitement :
$sqlr = 'SELECT * FROM `table` WHERE `titre` LIKE \''.$lettre['lettre'].'%\' ORDER BY `titre` ASC';
Mais il me manque un élément ... les champs commencant par tout autre chose qu'une lettre ... héhé Je ne sait pas non plus si les champs commençant par des lettres accentuées seront repris dans la lettre "d'origine" ...

Merci d'avance ;)

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

28 févr. 2006, 12:24

Ben... faut tester ! :langue:
En fait, je ne suis pas sûr de la réponse. :oops:

Tu peux simplifier l'écriture de ta requête en utilisant les guillemets.
C'est plus simple et plus lisible.
$sqlr = "SELECT * FROM table WHERE titre LIKE '".$lettre['lettre']."%' ORDER BY titre";
Mieux vaut également éviter les SELECT *

Mammouth du PHP | 768 Messages

28 févr. 2006, 13:12

ou encore:
$req = "SELECT nom_champ 
FROM nom_table 
WHERE LEFT( nom_champ, 1 ) = '".$lettre['lettre']."'";
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphant du PHP | 72 Messages

28 févr. 2006, 14:43

Mieux vaut également éviter les SELECT *
Ah bon ... je savais pas. Merci du conseil

Mais vous n'avez pas bien compris ou alors j'ai pas bien posé ma question :lol:
Je recommence :p :

Je voudrais sélectionner uniquement les champs commençant par autre chose qu'un caractère alphabétique. Comment on fait ?

Mammouth du PHP | 768 Messages

28 févr. 2006, 15:10

$req = "SELECT nom_champ 
FROM nom_table 
WHERE LEFT( nom_champ, 1 ) REGEXP '([^a-z])'";
je n'ai pas testé
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphant du PHP | 72 Messages

01 mars 2006, 01:40

Merci beaucoup ! Ca fonctionne parfaitement ;-)