order by et nom de domaine d'email

Eléphanteau du PHP | 32 Messages

17 nov. 2007, 10:57

Bonjour,

je m'interroge sur la faisabilité d'une requête Mysql de ce style (la syntaxe est fausse là)
$req_mail=mysql_query("select id_mail from tbl_mail where id_mail!="" order by strstr('id_mail', '@')",$db_link);
en fait le but de la requête est donc d'aller chercher des emails dans une base et de les ramener en les classant par nom de domaine

exemple de sortie voulue:
etc...

En fait je ne trouve pas la bonne syntaxe pour faire cela juste en une requête dans le style ci-dessus

En remerciant celui ou celle qui aura une idée pour m'aider à résoudre ce petit pb...

et bonne journée à tous

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 nov. 2007, 14:33

strstr n'est pas du SQL

Code : Tout sélectionner

SELECT id_mail, SUBSTRING_INDEX(id_mail, '@',-1) as o FROM tbl_mail where id_mail!="" ORDER BY o
Devrait faire l'affaire

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 5924 Messages

17 nov. 2007, 14:41

Utilise ORDER BY FIELD(mail1, mail2, …)

Eléphanteau du PHP | 32 Messages

17 nov. 2007, 15:03

merci à vous 2

je ne comprends pas bien le code de Truc (je vais chercher et comprendre) mais en tout cas ça marche nickel

Encore merci

Mammouth du PHP | 19672 Messages

17 nov. 2007, 21:17

je ne comprends pas bien le code de Truc
C'est en fin de compte assez simple : il utilise une fonction intégrée dans MySQL pour extraire une partie d'une chaine avec SUBSTRING_INDEX()

Cette fonction attend comme tu peux le voir trois paramètres :
  1. La colonne à traiter, donc ici la colonne `id_mail`;
  2. Un point de repère à trouver dans cette chaine, ici le '@';
  3. Enfin à partir de quel point, ici '-1', donc négatif, signifie qu'on part du point de repère trouvé jusqu'à la fin. Avec un paramètre positif, ça aurait été le nombre de caractères précédant le point de repère '@'.
Jette un coup d'œil dans la doc sur ce point
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 32 Messages

18 nov. 2007, 01:40

merci beaucoup pour l'explication plus claire je trouve que sur la doc que j'avais déjà survolé et qui m'avait paru peu explicite

un grand merci