8796 sujets

Développement web côté serveur, CMS

Bonjour a tous.
Voici mon problème je souhaite convertir un champ "year_born "qui est en année en age dans une requette sql ,afin de pouvoir filtrer des résultats avec un formulaire avec des champs qui sont en ages.
Merci de votre aide.
a écrit :
SELECT *
FROM users
WHERE year_born >= colname AND year_born <= colname2 AND code_postale = colname3 OR ville = colname3 OR aeroport= colname3
upload/18489-Image2.png
Salut,

Tu peux utiliser la fonction DATE_FORMAT(). Si chez toi "colname" est un entier représentant l'âge, ça donnerait :

SELECT
   *
FROM
   `users`
WHERE
   DATE_FORMAT( NOW(), '%Y' ) - `year_born` >= colname AND
   DATE_FORMAT( NOW(), '%Y' ) - `year_born` <= colname2 AND
   `code_postale` = colname3 OR
   `ville` = colname3 OR
   `aeroport`= colname3
Sans doute à cause de l'attaque extra-terrestre sur le data center de ton serveur.

Plus sérieusement, comment veux-tu qu'on devine pourquoi ça ne fonctionne pas si tu ne nous donnes pas de détails (erreur renvoyée par exemple) ?

"Ca marche pas" n'est pas une réponse valide.
Donc en fait la requête ne filtre pas ce qui est envoyé par le formulaire :
Formulaire deux champs: age 1 (format: 12 ) age 2 (format:23 ) table users year_born (format: 1974) , voila désole de ne pas être plus précis.
Si on pouvait voir ta requête à toi ça nous arrangerait ... Et sans PHP c'est encore mieux.
Et puis le mec qui est né en 1974 a très certainement plus de 23 ans hein.

Sachant qu'en fait il est encore mieux d'utiliser un BETWEEN :

SELECT 
   * 
FROM 
   `users` 
WHERE 
   DATE_FORMAT( NOW(), '%Y' ) - `year_born` BETWEEN colname AND colname2
Voici MR
a écrit :
$query_allusers = sprintf("SELECT * FROM users WHERE DATE_FORMAT( CURDATE(), '%%Y' ) - 'year_born' >= %s AND DATE_FORMAT( CURDATE(), '%%Y' ) - 'year_born '<= %s AND code_postale = %s OR ville = %s OR aeroport= %s ", GetSQLValueString($colname_allusers, "text"),GetSQLValueString($colname2_allusers, "text"),GetSQLValueString($colname3_allusers, "text"),GetSQLValueString($colname3_allusers, "text"),GetSQLValueString($colname3_allusers, "text"));
$query_limit_allusers = sprintf("%s LIMIT %d, %d", $query_allusers, $startRow_allusers, $maxRows_allusers);
$allusers = mysql_query($query_limit_allusers, $airlovelink) or die(mysql_error());
$row_allusers = mysql_fetch_assoc($allusers);
Agylus a écrit :
Et sans PHP c'est encore mieux.

... J'ai l'impression de ne pas parler la même langue que toi.
Sans php mais c'est du php a la base pas du html moi je te parle de php et de sql donc tu veux quoi de l'asp de aspnet de l'html
Voici la solution:
un grand merci au Mr qui ne parle vraiment pas le PHP

WHERE TO_DAYS(NOW()) - TO_DAYS(year_born) >= colname AND TO_DAYS(NOW()) - TO_DAYS(year_born) <= colname2