Page 1 sur 1

Prendre les Champs Commençant par un Caractère

Posté : 28 févr. 2006, 12:19
par qmeuh
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 ;)

Posté : 28 févr. 2006, 12:24
par albat
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 *

Posté : 28 févr. 2006, 13:12
par mario
ou encore:
$req = "SELECT nom_champ 
FROM nom_table 
WHERE LEFT( nom_champ, 1 ) = '".$lettre['lettre']."'";

Posté : 28 févr. 2006, 14:43
par qmeuh
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 ?

Posté : 28 févr. 2006, 15:10
par mario
$req = "SELECT nom_champ 
FROM nom_table 
WHERE LEFT( nom_champ, 1 ) REGEXP '([^a-z])'";
je n'ai pas testé

Posté : 01 mars 2006, 01:40
par qmeuh
Merci beaucoup ! Ca fonctionne parfaitement ;-)