Calcul d'age

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Calcul d'age

Re: Calcul d'age

par mistertux » 18 févr. 2010, 15:15

Quand je parlais d'etre precis je parlais dans le calcul de l'age car actuellement je fais une soustraction year(now) - year(datedenaissance) mais quelqu'un né en janvier et un autre en decembre c pas pareil.

Pour ce qui est de ma requete je sais deja qu'une requete avec un critere a chaque fois ca fonctionne, ensuite si je met des and au dela de 2 ou 3 je n'ai pas d'erreur sql mais aucun resultat trouvé. Je vais continué mes tests ...

A bientot

Re: Calcul d'age

par AB » 16 févr. 2010, 00:51

Ca fonctionne si je n'utilise pas plus de 2 and dans ma requête ... Il y a un moyen de faire une recherche dans ma table avec au moins 5 critères ?

Et oui ma colonne date_naissance est en date. Le probleme vient des and ...
Tu peux en mettre beaucoup plus des conditions "and" dans ta table. Le pb ne vient pas d'une limitation à ce niveau mais sans doute de tes conditions qui sont soit trop restrictives et la requqête ne retourne donc pas de résultat, soit ces conditions sont mal écrites.

Fait afficher ta requête pour voir si la chaine est ok
$sql = "SELECT .....";
echo $sql; 
//ensuite suit les conseils de débuggage en faisant
$ressource = mysql_query($sql) || exit(mysql_error());

Re: Calcul d'age

par stealth35 » 16 févr. 2010, 00:40

essaye de mettre parenthese ici
(YEAR(NOW()) - YEAR(date_naissance) = '$age')

sinon je ne peu que te conseil de tester tes requêtes, avec phpmyadmin (ou autre)

Re: Calcul d'age

par mistertux » 15 févr. 2010, 23:05

Ca fonctionne si je n'utilise pas plus de 2 and dans ma requête ... Il y a un moyen de faire une recherche dans ma table avec au moins 5 critères ?

Et oui ma colonne date_naissance est en date. Le probleme vient des and ...

Re: Calcul d'age

par stealth35 » 15 févr. 2010, 01:23

autant toujours prendre de bonne habitude ca mange pas de pain :wink:

Re: Calcul d'age

par AB » 15 févr. 2010, 01:21

mais te conseil plutot de faire
$ressource = mysql_query($sql) || exit(mysql_error());
"die" etant un alias de "exit" (pas très conseillé d'utilisé les alias)
Effectivement la remarque est pertinente dans le cadre général (certains allias venant à être dépréciés avec le temps...)
Mais s'agissant ici d'un code utilisé uniquement en phase de debuggage, cela n'a pas d'importance.

Re: Calcul d'age

par stealth35 » 15 févr. 2010, 00:47

ton date_naissance est il de type date ou varchar ?

+1 pour les remarque de AB

mais te conseil plutot de faire
$ressource = mysql_query($sql) || exit(mysql_error());
"die" etant un alias de "exit" (pas très conseillé d'utilisé les alias)

Re: Calcul d'age

par AB » 15 févr. 2010, 00:31

Effectivement ca fonctionne.

J'essaye d'ajouter d'autres criteres de recherches comme ca

$sql = "SELECT * FROM videos WHERE YEAR(NOW()) - YEAR(date_naissance) = '$age' and nom LIKE '%$nom%' and prenom LIKE '%$prenom%' and pays LIKE '$pays'";


mais je n'obtient pas de resulat. Une erreur de syntaxe ?

Est il possible d'etre plus precis pour l'age en travaillant avec les mois et les jours et non qu'avec les années ?
1/Fais afficher les erreurs mysql durant développement ainsi tu auras les erreurs de syntaxe.
$ressource = mysql_query($sql) or die(mysql_error())
2/Que veux tu sélectionner exactement en étant plus précis ?

Re: Calcul d'age

par mistertux » 14 févr. 2010, 22:41

Effectivement ca fonctionne.

J'essaye d'ajouter d'autres criteres de recherches comme ca

$sql = "SELECT * FROM videos WHERE YEAR(NOW()) - YEAR(date_naissance) = '$age' and nom LIKE '%$nom%' and prenom LIKE '%$prenom%' and pays LIKE '$pays'";


mais je n'obtient pas de resulat. Une erreur de syntaxe ?

Est il possible d'etre plus precis pour l'age en travaillant avec les mois et les jours et non qu'avec les années ?

Re: Calcul d'age

par AB » 12 févr. 2010, 00:27

Dans le même lien qu'a donné stealth35 tu peux aussi t'intéresser à la fonction YEAR() en bas de page.
Cela dépend de ce que tu veux faire mais si ton champ date de naissance est formaté correctement (au format DATE myql), pour trouver les personnes ayant 30 ans cette année tu peux faire

SELECT nom FROM matable WHERE YEAR(NOW()) - YEAR(date_de_naissance) = 30

Re: Calcul d'age

par stealth35 » 11 févr. 2010, 23:38

Calcul d'age

par Mister Tux » 11 févr. 2010, 23:34

Bonjour,

Voila je vous explique mon cas. J'ai une table avec des noms et des dates de naissance. j'aimerai récupérer les âges, pour refaire une requête et trouver les noms ayant le même âge ..