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. #41
    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
    Pourquoi est ce que tu recuperes l'age dans une fonction separée qui ré-interroge la base de donnée plutot que de le faire en meme temps que les autres informations ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  2. #42
    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 à sabotage
    Citation Envoyé par sabotage
    Pourquoi est ce que tu recuperes l'age dans une fonction separée qui ré-interroge la base de donnée plutot que de le faire en meme temps que les autres informations ?
    Suis désolé mais je vois pas trop ce que tu veux dire par là??

  3. #43
    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
    tu pourrais recuperer l'age en meme temps que nom, prenom et date de naissance.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #44
    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 à sabotage
    tu pourrais recuperer l'age en meme temps que nom, prenom et date de naissance.
    L'age n'est pas dans ma base de données alors que le reste oui.
    Par exemple le 'get_DateNaissance()' correspond à mon getter de ma classe Client alors que 'age()' correspond à une fonction de ma classe DAO_Client[classe d'accées aux données]. Vu que l'age ne s'enregistre pas dans la base, je suis bien obligé de faire une requête pour calculer l'age par rapport à la date de naissance du client??

    J'espère avoir répondu exactement a ta question en espérant que tu pourra toi ou les autres m'aidez!!

    Cordialement!!

  5. #45
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    L'age est dans ta base de données, ou, plus exactement il est déduit de la date de naissance grace a la requete


    par exemple si tu fais la requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select 
    	nom,
    	prenom,
    	DATEDENAISSANCE,
    	case  
    	when month(now()) - month(DATEDENAISSANCE) < 0 then year(now()) - year(DATEDENAISSANCE) -1 
    	when month(now()) = month(DATEDENAISSANCE) then 
    	IF(DAYOFMONTH(now()) - DAYOFMONTH(DATEDENAISSANCE) < 0,year(now())-year(DATEDENAISSANCE)-1,year(now())-year(DATEDENAISSANCE))
    	else
    	year(now())-year(DATEDENAISSANCE)
    	end AS age
    	FROM client
    tu as toutes les infos qu'il te faut en même temps

  6. #46
    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 à F_L_Stoi
    Certe avec la requête j'ai toute les données mais je vois pas comment faire pour inséré ceci dans mon tableau correspondant à ma vue??

    Je suis un peu perdu la maintenant!!

    Cordialement!!

  7. #47
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    est ce toi qui a créé la methode get_DateNaissance() de ta classe Client?

    si oui alors tu crées de la meme manière une fonction get_Age();
    et le tour est joué

    ensuite tu appelles l'age du capitaine avec $client->get_Age();

  8. #48
    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 à F_L_Stoi
    La fonction get_DateNaissance je l'ai créé moi même,e lle es de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function get_DateNaissance()
    	{
    		return $this->dateNaissance;
    	}
    Je vais essayé ce que tu me dit et on verra bien, je vous tient au courant!!

    Cordialement!!

  9. #49
    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 apport de mes nouvelles
    tu crées de la meme manière une fonction get_Age();
    et le tour est joué

    ensuite tu appelles l'age du capitaine avec $client->get_Age();
    Donc voici la méthode get_age() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function get_Age()
    	{
    		return $this->age;
    	}
    et voici le nouveau code de la vue :
    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
    <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->get_age()?></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>
    Puis le code du controles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?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');
     
    ?>
    Dans le controles, on fais appel à la méthode retournerLesClients() de ma classe DAO_Client que voici :
    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
    	public function retournerLesclients()
    	{
    		$req="select * from client";
     
    		$res = mysql_query($req);
     
    		$macol= new Collection();
     
    		while($row = mysql_fetch_array($res))
    		{
    			$lecl=new client_DAO;
    			$lecl->retournerUnclient($row["IDClient"]);
    			$macol->add($lecl);
    		}
     
    		return $macol->getAll(); //retourne une collection de catégorie
    	}
    Dans laquel on appelle la méthode RetournerUnClient(...) que voici :
    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
    public function retournerUnclient($id)
    	{
    		$req="SELECT * FROM client WHERE IDClient=".$id;
    		$res=mysql_query($req);
     
    		if (mysql_num_rows($res)==1)
    		{
    			$this->set_IdClient(mysql_result($res,0,"IDClient"));
    			$this->set_titre(mysql_result($res,0,"TITRE"));
    			$this->set_nom(mysql_result($res,0,"NOM"));
    			$this->set_prenom(mysql_result($res,0,"PRENOM"));
    			$this->set_DateNaissance(mysql_result($res,0,"DATEDENAISSANCE"));
    			$this->set_mail(mysql_result($res,0,"mail"));
    			$this->set_motPasse(mysql_result($res,0,"motPasse"));
    			$this->set_adresse(mysql_result($res,0,"ADRESSE"));
    			$this->set_code_postal(mysql_result($res,0,"CODE_POSTAL"));
    			$this->set_ville(mysql_result($res,0,"VILLE"));
    			return $this; 
    		}
    	}
    Donc avec ceci l'age ne s'affiche pas du tout. Comment faire??

    Cordialement!!

  10. #50
    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 Besoin de votre aide!!
    Voila, suis vraiment bloqué, je sais pas comment faire!!

    Suite a ce que 'F_L_Stoi' m'a conseillé de faire(voir le code au sujet suivant). Je voulais donc savoir si la requête suivante, je dois m'en servir dans mon code?? Si oui, ou??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select 
    	nom,
    	prenom,
    	DATEDENAISSANCE,
    	case  
    	when month(now()) - month(DATEDENAISSANCE) < 0 then year(now()) - year(DATEDENAISSANCE) -1 
    	when month(now()) = month(DATEDENAISSANCE) then 
    	IF(DAYOFMONTH(now()) - DAYOFMONTH(DATEDENAISSANCE) < 0,year(now())-year(DATEDENAISSANCE)-1,year(now())-year(DATEDENAISSANCE))
    	else
    	year(now())-year(DATEDENAISSANCE)
    	end AS age
    	FROM client
    Si quelqu'un a une autre idée qui fonctionne parfaitement(en espérant que ca fonctionnera pour mon programme), je le prend avec plaisir!!??

    Merci d'avance!!

    P.S. : j'espère de tout mon coeur que vous pourriez m'aider car je sais vraiment plus quoi faire!!

    Cordialement!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

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