Calculs mathématiques en php

Calculs mathématiques en php - PHP - Programmation

Marsh Posté le 09-02-2012 à 11:25:27    

Bonjour à tous,
 
je galère depuis ce matin sans trouver de solutions... voici le probleme :
 
J'ai une base de données de patients : id, nom, prenom, jour de naiss, mois de naiss, année de naiss, etc...
 
Je souhaite faire une page statistique récapitulative de ces données : combien de patients / combien d'hommes / femmes et surtout ce qui m'interesse actuellement faire des calculs sur l'age.
 
Je précise que j'ai déjà une fonction me permettant d'afficher au jour près (à plus ou moins 1 ou 2 jours) l'age d'UN patient.
 
Je souhaite pouvoir calculer de manière très basique :
 
Moyenne d'age
Combien de personnes dans la tranche 0-7ans / 7-15ans / 15-25ans etc....
 

Code :
  1. $req = MYSQL_QUERY("SELECT * FROM guimosteo_fiches" );
  2. while ($donnees = mysql_fetch_array($req))
  3. {
  4. $xannee = $donnees['annee'];
  5. $today['annee'] = date('Y'); // annee d'aujourd'hui
  6. $annees = $today['annee'] - $xannee; // différentiel aujourd'hui/patient
  7. echo "$annees,";
  8. }


Ceci me donne mes "ages" (peu importe qu'ils soient assez peu précis) les uns après les autres... comment les additionner ?
 
Le problème étant que je ne peux pas faire une requete dans ma BDD qui me renvoie l'age directement, seulement l'année de naissance...
 
Je sais aps si j'ai été tres clair.. des idées?


---------------
www.bubbleburstband.com
Reply

Marsh Posté le 09-02-2012 à 11:25:27   

Reply

Marsh Posté le 09-02-2012 à 12:09:39    

Essayer :

Code :
  1. $nb_personnes = 0;
  2. $age_total = 0;
  3. $req = MYSQL_QUERY("SELECT * FROM guimosteo_fiches" );
  4. while ($donnees = mysql_fetch_array($req))
  5. {
  6.   $xannee = $donnees['annee'];
  7.   $today['annee'] = date('Y'); // annee d'aujourd'hui
  8.   $annees = $today['annee'] - $xannee; // différentiel aujourd'hui/patient
  9.   echo "$annees,";
  10.   $age_total += intval($annees);
  11.   $nb_personnes++;
  12. }
  13. $age_moyen = $age_total / $nb_personnes;
  14. echo "<br>".$nb_personne." personnes, pour un total de ".$age_total.", et un age moyen de ".$age_moyen.".";


 
Edit : Et pour l'age par tranche :
 

Code :
  1. $nb_personnes_tranche = array();
  2. for ($i_tranche = 0; $i_tranche < 12; $i_tranche++)
  3.   $nb_personnes_tranche[$i_tranche] = 0;
  4. $req = MYSQL_QUERY("SELECT * FROM guimosteo_fiches" );
  5. while ($donnees = mysql_fetch_array($req))
  6. {
  7.   $xannee = $donnees['annee'];
  8.   $today['annee'] = date('Y'); // annee d'aujourd'hui
  9.   $annees = $today['annee'] - $xannee; // différentiel aujourd'hui/patient
  10.   echo "$annees,";
  11.   $tranche = intval(intval($annees) / 8);
  12.   $nb_personnes_tranche[$tranche]++;
  13. }
  14. for ($i_tranche = 0; $i_tranche < 12; $i_tranche++)
  15.   echo "<br> Tranche ".strval($i_tranche * 8)."-".strval(($i_tranche + 1) * 8 - 1)." : ".strval($nb_personnes_tranche[$i_tranche]);


Message édité par olivthill le 09-02-2012 à 12:17:22
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed