IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Calculer l'âge en fonction de la date de naissance [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut Calculer l'âge en fonction de la date de naissance
    Bonjour tout le monde,

    Je suis entrain de réaliser un site web en PHP orienté objet donc j'ai une classe "Client" dans laquel se situe un attribut "DateDeNaissance" de type date(YYYY/MM/JJ).

    J'aimerais calculer l'age grâce à la date de naissance, comment puis-je faire??

    Je sais faire lorsque la date de naissance est divisé en 3 point : Jour, Mois, Années. Mais avec la date de naissance je vois pas comment faire pour prendre juste le mois ou juste l'année??

    Merci d'avance!!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour,

    Ta date en 3 c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $date= "JJ/MM/YYYY"
    list($jour, $mois, $annee) = explode ('/', $date);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Pour compléter la réponse, voici une solution qui permet de calculer rapidement l'âge, mais attention il faut passer la date au format US.
    Ya sûrement d'autres méthodes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $date= "4/12/1908"
    list($jour, $mois, $annee) = explode ('/', $date);
    $TSN = strtotime($annee"/".$mois."/".$jour);
    $TS = strtotime(date("Y/m/d"));
     
    $Age = ($TS-$TSN)/(365*3600*24);
    echo "Age= ".round($Age);
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à riete
    Merci pour ton code, voila ce que ça me donne comme code dans mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Ce code se situe dans la classe "DAO_Client"
    public function age($date)
    	{
    		list($jour, $mois, $annee) = explode ('/', $date);
    		$TSN = strtotime($annee."/".$mois."/".$jour);
    		$TS = strtotime(date("Y/m/d"));
    		 
    		$Age = ($TS-$TSN)/(365*3600*24);
    		echo round($Age);			
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // Controles C_Client
    <?php
    	// Instance de la classe 'Client'
    	$DAOClt = new client_DAO();
    	// Chargement des clients
    	$MesClt = $DAOClt->retournerLesclients();
    	
    	// Afficher la page "client"
    	require('Admin/Vue/V_client.php');
    
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    // Vue V_Client
    <table>
    	<tr>
    		<th>Numéro du client</th>
    		<th>Titre</th>
    		<th>Nom</th>
    		<th>Prenom</th>
    		<th>Date de naissance</th>
    		<th>Age</th>
    		<th>Adresse</th>
    		<th>Code postal</th>
    		<th>Ville</th>
    	</tr>
    	<?php
    	foreach ($MesClt as $clients)
    	{
    		?>
    		<!-- Affichage des données -->
    		<tr>
    			<td><div class="contenu"><?php echo $clients->get_IdClient(); ?></div></td>
    			<td><div class="contenu"><?php echo $clients->get_titre(); ?></div></td>
    			<td><div class="contenu"><?php echo $clients->get_nom(); ?></div></td>
    			<td><div class="contenu"><?php echo $clients->get_prenom(); ?></div></td>
    			<td><div class="contenu"><?php echo $clients->get_DateNaissance()?></div></td>
    			<td><div class="contenu"><?php echo $clients->age("10/10/1986")?></div></td>
    			<td><div class="contenu"><?php echo $clients->get_adresse(); ?></div></td>
    			<td><div class="contenu"><?php echo $clients->get_code_postal(); ?></div></td>
    			<td><div class="contenu"><?php echo $clients->get_ville(); ?></div></td>
    		</tr>
    		<?php
    	}
    	?>
    </table>
    Mon problème c'est qu'il m'affiche automatiquement 22ans. Même si la date de naissance dans la base = 0000-00-00.

    Comment faire pour résoudre ce problème??

    Merci d'avance!!

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    <td><div class="contenu"><?php echo $clients->age("10/10/1986")?></div></td>
    ça semble normal qu'il affiche 22 ans

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Guardian
    ah oui effectivement!!

    Mais que dois-je mettre à la place de "10/10/1986"??

    Puis c'est ma date de naissance et j'ai 21ans et non 22ans!!

    Cordialement!!

  7. #7
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Tu as un exemple dans la doc

    http://www.php.net/manual/fr/function.date.php#68111

    qui te permets de calculer le nombre de jours entre 2 dates , si tu le divise par 365.25 tu arrive sur un nombre d'années a virgule que tu peux arrondir , et/ou que tu peux comparer au jour précis de naissance pour afficher l'entier exact.
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  8. #8
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    ah oui effectivement!!

    Mais que dois-je mettre à la place de "10/10/1986"??

    Puis c'est ma date de naissance et j'ai 21ans et non 22ans!!

    Cordialement!!
    Ok tu as 21 ans, en suivant les instructions de de RideKick pour avoir l'age juste.

    Mais en ce qui concerne ta question de savoir pourquoi tu n'a pas l'age de la personne que tu interroges, c'est simplement parce que tu ne passe pas sa valeur à ta fonction age().
    Il faut que tu fasse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $clients->age($clients->get_DateNaissance())
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à RideKick et à riete
    qui te permets de calculer le nombre de jours entre 2 dates , si tu le divise par 365.25 tu arrive sur un nombre d'années a virgule que tu peux arrondir , et/ou que tu peux comparer au jour précis de naissance pour afficher l'entier exact.
    J'ai regardé l'exemple mais j'arrive pas à trouvé ce qui me concerne dans l'exemple(moi et l'anglais...)

    Mais en ce qui concerne ta question de savoir pourquoi tu n'a pas l'age de la personne que tu interroges, c'est simplement parce que tu ne passe pas sa valeur à ta fonction age().
    Il faut que tu fasse:
    Code :
    $clients->age($clients->get_DateNaissance())
    Bref, pour le moment j'aimerais régler le problème d'obtenir l'age selon la date de naissance de chaque client. J'ai fais ce que tu me conseille riete mais maintenant cela m'affiche 39ans a chaque fois, même si la date de naissance du client n'est pas renseigné dans la base.
    Je vois vraiment pas pourquoi!!

    Merci d'avance!!

  10. #10
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    En ce qui concerne $clients->age($clients->get_DateNaissance()), j'ai émis cette hypothèse car je pensais que ta methode get_DateNaissance() retourne la date de naissance de ton client, juste ? Sauf que ta date en mysql est retournée avec un '-' et non u '/' !!! Tu me suis ?

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($jour, $mois, $annee) = explode ('/', $date);
    Devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($jour, $mois, $annee) = explode ('-', $date);
    Pour le problème de la valeur de l'age valable. Dans ton cas, tu as 21,96 ans donc. Si tu considère que tu as 21 tant que tu n'a pas 22 ans révolu, il ne te reste plus qu'a faire une truc du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($age < ($age + 0.5)) $age = round( $age - 1);
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 132
    Points : 99
    Points
    99
    Par défaut
    39 ans ?
    c'est pas justement le nombre d'années écoulées depuis 1970 ? (arrondi +)



    Sinon :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $dateDeNaissance = '01/01/1900';
    $dateDeNaissance = explode('/', $dateDeNaissance);
    $age = date('Y') - $dateDeNaissance[2];

  12. #12
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à riete et à SPKlls
    En ce qui concerne $clients->age($clients->get_DateNaissance()), j'ai émis cette hypothèse car je pensais que ta methode get_DateNaissance() retourne la date de naissance de ton client, juste ? Sauf que ta date en mysql est retournée avec un '-' et non u '/' !!! Tu me suis ?

    Donc
    Code :
    list($jour, $mois, $annee) = explode ('/', $date);Devient
    Code :
    list($jour, $mois, $annee) = explode ('-', $date);Pour le problème de la valeur de l'age valable. Dans ton cas, tu as 21,96 ans donc. Si tu considère que tu as 21 tant que tu n'a pas 22 ans révolu, il ne te reste plus qu'a faire une truc du style:
    Code :
    if($age < ($age + 0.5)) $age = round( $age - 1);
    Cela m'affiche bien 21 ans.

    Sinon :


    Code PHP :
    $dateDeNaissance = '01/01/1900';
    $dateDeNaissance = explode('/', $dateDeNaissance);
    $age = date('Y') - $dateDeNaissance[2];
    Suis désolé mais j'aimerais avoir plus d'explication sur le bout de code que tu ma fournit car je le comprend bof.

    P.S. : Sinon lorsque la date de naissance est égal à "0000-00-00" il m'affiche 8 ans.

    Cordialement!!

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 132
    Points : 99
    Points
    99
    Par défaut
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $dateDeNaissance = '01/01/1900';
    $dateDeNaissance = explode('/', $dateDeNaissance);
    $age = date('Y') - $dateDeNaissance[2];

    explode pour récupérer les éléments séparés par '/'
    date('Y') renvoie l'année actuelle
    donc il reste à soustraire celle ci par l'année de naissance..
    ici le résultat est 108

    Bien sur ça ne prends en compte le fait d'être née avant ou après le mois actuelle.
    En effet si la date de naissance était 12/12/1900 le résultat sera également 108 ans bien que ça ne soit pas réellement le cas.
    Mais palier à ça on peut simplement comparer le mois, puis le jour si nécessaire.

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $dateDeNaissance = '27/09/1900';
    $dateDeNaissance = explode('/', $dateDeNaissance);
    if (intval($dateDeNaissance[1],10) > date('n')) {
    	$age = date('Y') - $dateDeNaissance[2] - 1;
    }
    elseif (intval($dateDeNaissance[1],10) == date('n') && intval($dateDeNaissance[0],10) >= date('j')) {
    	$age = date('Y') - $dateDeNaissance[2] - 1;
    }
    else {
    	$age = date('Y') - $dateDeNaissance[2];
    }

    On utilise intval pour retirer le 0, nécessaire pour la comparaison.

  14. #14
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Suis désolé mais j'aimerais avoir plus d'explication sur le bout de code que tu ma fournit car je le comprend bof.

    P.S. : Sinon lorsque la date de naissance est égal à "0000-00-00" il m'affiche 8 ans.
    Pour la question de la date 0000-00-00, c'est à toi de faire un test qui retourne un message du type "Inconnu" ou "date non fournie au cas ou la date de naissance ait cette valeur.

    Pour les explications, pas de pb, mais lesquelles ?
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  15. #15
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Pris dans le livre de SQLPro, cette formule en SQL pour calculer un âge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    (((EXTRACT(YEAR FROM CURRENT_DATE)) * 365.2422
    + (EXTRACT(MONTH FROM CURRENT_DATE) - 1) * 31.0
    + EXTRACT(DAY FROM CURRENT_DATE))
    -
    ((EXTRACT(YEAR FROM madate)) * 365.2422
    + (EXTRACT(MONTH FROM madate) -1 ) * 31.0
    + (EXTRACT(DAY FROM madate))
    ) / 365.2422
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  16. #16
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à riete et à CinePhil
    Réponse à riete :
    Pour la question de la date 0000-00-00, c'est à toi de faire un test qui retourne un message du type "Inconnu" ou "date non fournie au cas ou la date de naissance ait cette valeur
    Ui c'est pas bête, je vais essayé de voir ça!!
    Pour les explications, pas de pb, mais lesquelles ?
    C'étais les explications sur le code de SPKlls mais c'est bon, il me les a donné!!merci quand même a toi!!

    Réponse à CinePhil :
    Pris dans le livre de SQLPro, cette formule en SQL pour calculer un âge :

    Code :
    (((EXTRACT(YEAR FROM CURRENT_DATE)) * 365.2422
    + (EXTRACT(MONTH FROM CURRENT_DATE) - 1) * 31.0
    + EXTRACT(DAY FROM CURRENT_DATE))
    -
    ((EXTRACT(YEAR FROM madate)) * 365.2422
    + (EXTRACT(MONTH FROM madate) -1 ) * 31.0
    + (EXTRACT(DAY FROM madate))
    ) / 365.2422
    J'essayerai ceci pourquoi pas et je te tiens au courant!!

    Merci a vous pour votre aide, j'essayerais cela quand j'aurai un peu plus de temps, je vous tiens au couant!!

    Cordialement!!

  17. #17
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à riete
    Je viens de faire la chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // ClasseDAO_Client
    public function age($date)
    	{
    		list($jour, $mois, $annee) = explode ('-', $date);
    		$TSN = strtotime($annee."/".$mois."/".$jour);
    		$TS = strtotime(date("Y/m/d"));
     
    		$Age = ($TS-$TSN)/(365*3600*24);
    		if($Age < ($Age + 0.5)) $Age = round( $Age - 1);
    		if($date = "0000-00-00") $Age = "Inconnu";
    		echo round($Age)." ans";			
    	}
    Mais cela m'affiche 0ans dans tout les cas.

    Comment faire??

    Cordialement!!

  18. #18
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à CinePhil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    (((EXTRACT(YEAR FROM CURRENT_DATE)) * 365.2422
    + (EXTRACT(MONTH FROM CURRENT_DATE) - 1) * 31.0
    + EXTRACT(DAY FROM CURRENT_DATE))
    -
    ((EXTRACT(YEAR FROM madate)) * 365.2422
    + (EXTRACT(MONTH FROM madate) -1 ) * 31.0
    + (EXTRACT(DAY FROM madate))
    ) / 365.2422
    J'ai essayé mais je vois pas trop par quoi remplacer "CURRENT DATE" et "madate"!!??

    Cordialement.

  19. #19
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    j'ai une classe "Client" dans laquel se situe un attribut "DateDeNaissance" de type date(JJ/MM/YYYY).

    J'aimerais calculer l'age grâce à la date de naissance, comment puis-je faire??
    Tu remplaces MaDate par DateDeNaissance tout simplement.

    CURRENT_DATE est une fonction MySQL qui te donne la date d'aujourd'hui.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  20. #20
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à CinePhil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     $req=("(((EXTRACT(YEAR FROM CURRENT_DATE)) * 365.2422+ (EXTRACT(MONTH FROM CURRENT_DATE) - 1) * 31.0+ EXTRACT(DAY FROM CURRENT_DATE))-((EXTRACT(YEAR FROM DATEDENAISSANCE)) * 365.2422+ (EXTRACT(MONTH FROM DATEDENAISSANCE) -1 ) * 31.0+ (EXTRACT(DAY FROM DATEDENAISSANCE))) / 365.2422");
    		$res = mysql_query($req);
    		$Age=mysql_fetch_row($res);
    J'ai essayé mais voici ce que cela m'affiche comme erreur :
    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Site_Web\DAO\client_DAO.php on line 155
    0 ans
    la ligne 155 correspond : $Age=mysql_fetch_row($res);

    Je me demande si je dois pas faire une boucle tel que "foreach" mais si c'est le cas je vois pas sur quel élément??

    Cordialement!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [WD10] Calcul de l'âge à partir de la date de naissance
    Par miezaka dans le forum WinDev
    Réponses: 2
    Dernier message: 06/03/2014, 16h34
  2. Requête tranche d'âge en fonction de la date de naissance
    Par Devilju69 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/01/2014, 13h16
  3. Réponses: 4
    Dernier message: 14/11/2007, 11h07
  4. Fonction de calcul du nb de jour entre 2 dates
    Par Teugos dans le forum SAP
    Réponses: 3
    Dernier message: 20/09/2007, 18h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo