Sélection php selon plusieurs critères

Résolu
t671 Messages postés 1471 Date d'inscription   Statut Membre Dernière intervention   -  
t671 Messages postés 1471 Date d'inscription   Statut Membre Dernière intervention   - 31 oct. 2011 à 14:55
Bonjour,

Ma base contient des noms, et des dates (naissance et décès) sous différent format (jj.mm.aaaa, ou <jj.mm.aaaa, ou vers aaaa, .....). Je me base sur l'année (aaaa) pour gérer et rechercher des dates.

Je veux afficher les noms (affiché selon la première lettre) , avec l'année (aaaa) la plus petite et la plus grande selon une fourchette d'année.

Si j'écris ceci (sans la fourchette de l'année recherchée), ça fonctionne :
$select = 'SELECT nom,COUNT(*) AS nb, MIN( RIGHT(date_naissance, 4) ) AS date, MAX( RIGHT(date_dc, 4) ) AS datedc FROM ville_bis WHERE nom LIKE "'.mysql_real_escape_string(A).'%" GROUP BY nom ORDER BY nom ASC';


Mais main,tenent, je n'arrive pas inclure dans la requête la fourchette de l'année recherchée. J'ai essayé ceci
$select = 'SELECT nom,COUNT(*) AS nb, MIN( RIGHT(date_naissance, 4) ) > AS date > "1599", MAX( RIGHT(date_dc, 4) ) AS datedc < "1801" FROM ville_bis WHERE nom LIKE "'.mysql_real_escape_string(A).'%" GROUP BY nom ORDER BY nom ASC';

mais il y a une erreur de syntaxe
Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS date > "1599", MAX( RIGHT(date_dc, 4) ) AS datedc < "1801" FROM ville_b' at line 1


Comment faire ???

Merci.

4 réponses

bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   712
 
Salut!

Essai avec ça:

$select = 'SELECT nom,COUNT(*) AS nb, MIN( RIGHT(date_naissance, 4) ) > AS date  BETWEEN "1599", AND MAX( RIGHT(date_dc, 4) ) AS datedc "1801" FROM ville_bis WHERE nom LIKE "'.mysql_real_escape_string(A).'%" GROUP BY nom ORDER BY nom ASC';


0
t671 Messages postés 1471 Date d'inscription   Statut Membre Dernière intervention   11
 
Merci pour ton aide, mais j'ai l'erreur Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS date BETWEEN "1599", AND MAX( RIGHT(date_dc, 4) ) AS datedc "1801" FROM vill' at line 1


Snifffffffffff ...........
0
bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   712
 
$select = 'SELECT nom,COUNT(*) AS nb, MIN( RIGHT(date_naissance, 4) ) AS date  BETWEEN "1599", AND MAX( RIGHT(date_dc, 4) ) AS datedc "1801" FROM ville_bis WHERE nom LIKE "'.mysql_real_escape_string(A).'%" GROUP BY nom ORDER BY nom ASC';

0
t671 Messages postés 1471 Date d'inscription   Statut Membre Dernière intervention   11
 
Ben non .... Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BETWEEN "1599", AND MAX( RIGHT(date_dc, 4) ) AS datedc "1801" FROM ville_bis WHE' at line 1


J'ai essayé
$select = 'SELECT nom,COUNT(*) AS nb, MIN( RIGHT(date_naissance, 4) ) AS date BETWEEN "1599" AND "1801", AND MAX( RIGHT(date_dc, 4) ) AS datedc BETWEEN "1599" AND "1801" FROM ville_bis WHERE nom LIKE "'.mysql_real_escape_string(A).'%" GROUP BY nom ORDER BY nom ASC';}

mais c'est pareil, ça fonctionne pas .........
0