Script php recherche de membre par leur age

micka30 Messages postés 102 Statut Membre -  
micka30 Messages postés 102 Statut Membre -
Bonjour,

je suis en train d'essayer de creer un site internet ,j'ai fait une page "recherche rapide de membre" et j'amerai creer un script en php qui recherche les membre de mon site par rapport age

ex: affiche les membre qui ont de 18 ans a 22ans !

probleme c'est que je ne sais pas du tout comment faire, dans ma bdd j'ai enregistré la date de naissances de mes membre en 3 champs
jour, mois ,annee

si quelqu'un aurrait un script a me proposer ca serait cooll!!

j'utilise wamp5 avec phpmyadmin!

donc j'enregistre la date de naissance avec le type date dans la bdd

comme ca!


<form method="post" action="reponseinscription.php"> <!-- ouverture du formulaire-->
<fieldset>
<legend>Formulaire</legend>
<!-- Le formulaire -->
<p>
<label for="date_de_naissance">Votre date de naissance</label> :
<input type="text" name="jour" size="2" maxlength="2"/>
<input type="text" name="mois" size="2" maxlength="2"/>
<input type="text" name="annee" size="4" maxlength="4"/>
</fieldset>
<!--Les bouttons magiques ^^-->
<p>
<input type="submit" value="envoyer" /> <input type="reset" />
</p>




on m'a dit qu'il fallait 1 seul champs dans la bdd avec jour,mois ,annee

pouvais vous me montrer si possible un script complet svp? avec enresgistrement de la date de naissances du membre dans la bdd et
aussi affichage des membres qui on entre x age et x age?


merci d'avance

cordialement
A voir également:

24 réponses

lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
bonjour ,je suis comme toi je debute aussi...
je n'ai pas de script tout fait a te propser pour ton pb ,mais il te faut faire une requete du type
$sql = "SELECT ta_table FROM date_naissance WHERE age= ta_variable_age"
je sais qu'il y a une fonction qui permet de faire la difference entre la date du jour (now) et la date enregistrée regarde du cote de phpfacile.
@+
0
micka30 Messages postés 102 Statut Membre 5
 
merci de ta reponse!

non ce n'est pas ce que j'ai demandé , car moi j'ai pas d'age enregistrer dans la bdd juste une date de naissance !

donc il me faut une requête qui transforme la date de naissances en age et qui me sort tout les membre entre x age et x age!!
0
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
Salut

Regarde du coté des timestamps. C'est la meilleure solution à mon gout pour manipuler des dates.

A+
0
micka30 Messages postés 102 Statut Membre 5
 
salut !
on ma dit que le timestamps marchait que pour les dates apres 1970!

peut tu me montrer un exemple de script stp!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
hmm, j'avais plus pensé à ça... effectivement, le timestamps commence au premier janvier 70.

Alors, j'ai pas de script sous la main, mais globalement :

Tu enregistre date, mois, années dans ta base SQL dans un champ au format "DATE", qui sera de la forme YYYY-MM-DD

Ensuite, pour une requète SQL, il te suffit d'un

$req = mysql_query("Select * from membre where date_naissance > $date_min AND date_naissance < $date max");
Logiquement, ca doit marcher !

A+
0
micka30 Messages postés 102 Statut Membre 5
 
merci de ta reponse!

mais cette requ^te va me sortir les membre nee entre x et x!

or moi j'aimerai que ca me sort l'age aussi du membre!!
0
Alain42
 
Bonsoir,

Si ça te sort les membres nés entre x et y, SELECT * FROM te sort tous les champs donc celui de la adate de naissance.
Il te sera facile en php ensuite de calculer age=date_aujourd'hui-date_naisssance et de l'afficher en même temps que le résultat de ta requette
0
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
Comme le dit Alain42, après c'est une soustraction de l'année, avec une vérification du jour/mois...
0
micka30 Messages postés 102 Statut Membre 5
 
a tu un petit exemple a me montrer pour que je comprenne pas tout de travers!!
0
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
hmm...

Bon, tu as t'a requète avec le champs date_naissance qui est sorti.

Tu récupère donc une variable yyyy-mm-dd. Tu ressort l'année par un explode. Tu soustrait l'année en cours par l'année de naissance, et tu obtient le nombre d'année de l'utilisateur... ce qu'on appel son age ;-p
0
micka30 Messages postés 102 Statut Membre 5
 
avec ce formulaires c'est bon?

<form method="post" action="reponseinscription.php"> <!-- ouverture du formulaire-->
<fieldset>
<legend>Formulaire</legend>
<!-- Le formulaire -->
<p>
<label for="date_de_naissance">Votre date de naissance</label> :
<input type="text" name="jour" size="2" maxlength="2"/>
<input type="text" name="mois" size="2" maxlength="2"/>
<input type="text" name="annee" size="4" maxlength="4"/>
</fieldset>
<!--Les bouttons magiques ^^-->
<p>
<input type="submit" value="envoyer" /> <input type="reset" />
</p>



il faut que je rajoute des - entre jour et mois et mois et annes ou ca se fait tout seul dans la bdd avec DATE,?
0
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
Ca s'est un formulaire d'enregistrement, mais c ok oui :)
0
micka30 Messages postés 102 Statut Membre 5
 
explode sert a quoi, je ne le connait pas ?
0
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
explode sert à "exploser" une chaine de caractère selon un délimiteur, ici "-".

Plus d'infos ici : http://www.manuelphp.com/php/function.explode.php

Au fait, tu fais pas réveillon ?
0
micka30 Messages postés 102 Statut Membre 5
 
okok merci!

comme ca alors c'est bon!

function calculer_age($naissance)
{
$arr1 = explode('/', $naissance);
$arr2 = explode('/', date('d/m/Y'));
if(($arr1[1] < $arr2[1]) || (($arr1[1] == $arr2[1]) && ($arr1[0] <= $arr2[0])))
return $arr2[2] - $arr1[2];
return $arr2[2] - $arr1[2] - 1;
}
0
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
:-) Y'a pas de quoi :)

Bon réveillon & meilleurs voeux !
0
micka30 Messages postés 102 Statut Membre 5
 
okok merci!

comme ca alors c'est bon!

function calculer_age($naissance)
{
$arr1 = explode('/', $naissance);
$arr2 = explode('/', date('d/m/Y'));
if(($arr1[1] < $arr2[1]) || (($arr1[1] == $arr2[1]) && ($arr1[0] <= $arr2[0])))
return $arr2[2] - $arr1[2];
return $arr2[2] - $arr1[2] - 1;
}13 message(s) posté(s) depuis le dimanche 30 décembre 2007
0
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
Ca me parait bien :)
0
micka30 Messages postés 102 Statut Membre 5
 
Bon réveillon & meilleurs voeux ! a toi aussi!
0
Ohm-WorK Messages postés 1468 Statut Contributeur 420
 
:-p réveillon au taf, alors tu sais ... !
0