login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Leeftijd Script geeft leeftijd niet weer (Opgelost)

Offline larssy1 - 11/09/2007 02:44 (laatste wijziging 11/09/2007 12:44)
Avatar van larssy1MySQL beginner Hey mensen.

Ik ben bezig met een profiellen systeempje..
maar nu wil ik de leeftijd laten berekenen gebasseerd op het jaartal, de maan en de dag..

maar nu wilt hij de leeftijd niet weergeven.. waar heb ik hier in het scriptje een fout begaan?

  1. <tr>
  2. <td align=left> Age: <?
  3. if($object->jaar=="0000"){
  4. echo "unknown";
  5. } elseif ($object->maand=="00"){
  6. echo "unknown";
  7. } elseif ($object->dag=="00"){
  8. echo "unkown";
  9. } else {
  10. function leeftijd($dag,$maand,$jaar){
  11. $dag2 = date('d');
  12. $maand2 = date('m');
  13. $jaar2 = date('Y');
  14. $jaar3 = $jaar2 - $jaar;
  15. $maand3 = $maand2 - $maand;
  16.  
  17. if ($maand3 < 0){$jaar3 --;}
  18. elseif ($maand3 == 0){
  19. if($dag2 < $dag){$jaar3 --;}
  20. }
  21.  
  22. return $jaar3;
  23. }
  24. }
  25.  
  26. ?>
  27. </td>
  28. </tr>


svp.. ik denk dat ik dit script hier wel mag posten gezien het niet zo groot is..


Met Vriendelijke Groet
Larssy1

12 antwoorden

Gesponsorde links
Offline Gerard - 11/09/2007 02:55
Avatar van Gerard Ouwe rakker Wanneer je gebruik maakt van een DATE kolom in je database kan je deze berekening door MySQL laten uitvoeren. Hiervoor maak ik zelf gebruik van de volgende berekening:
  1. FLOOR(PERIOD_DIFF(DATE_FORMAT(CURDATE(), '%Y%m'), DATE_FORMAT(u.birthday, '%Y%m')) / 12) AS age
Offline larssy1 - 11/09/2007 03:02
Avatar van larssy1 MySQL beginner Nee ik maak geen gebruik van date kolommen..

ik heb 3kollomen in de database.
jaar
maand
dag

maar ik heb ze niet op DATE staan omdat zodra ik dat doe er dan 0000-00-00 in de database komt te staan als standaard.

Offline DenMette - 11/09/2007 07:09
Avatar van DenMette PHP gevorderde Je moet wel echoen he ik hoop dat je dat wel het gedaan.

  1. <?php echo leeftijd($dag,$maand,$jaar); ?>
Offline larssy1 - 11/09/2007 12:10
Avatar van larssy1 MySQL beginner nope dat heb ik niet gedaan.. mijn script is exact zoals het hierboven staat.. leef je uit zou ik zeggen,, zullen vast nog wel meer foutjes inzitten 
Offline Wim - 11/09/2007 13:31
Avatar van Wim Crew algemeen als je de code maar 1x gebruikt verwijder je regel 10 en regel 23

je veranderd return dan door print of echo
Offline larssy1 - 11/09/2007 14:32
Avatar van larssy1 MySQL beginner hmm.. dit bedoel je?

  1. <tr>
  2. <td align=left> Age: <?
  3. if($object->jaar=="0000"){
  4. echo "unknown";
  5. } elseif ($object->maand=="00"){
  6. echo "unknown";
  7. } elseif ($object->dag=="00"){
  8. echo "unkown";
  9. } else {
  10.  
  11. $dag2 = date('d');
  12. $maand2 = date('m');
  13. $jaar2 = date('Y');
  14. $jaar3 = $jaar2 - $jaar;
  15. $maand3 = $maand2 - $maand;
  16.  
  17. if ($maand3 < 0){$jaar3 --;}
  18. elseif ($maand3 == 0){
  19. if($dag2 < $dag){$jaar3 --;}
  20. }
  21.  
  22. echo "$jaar3";
  23. }
  24.  
  25. ?>
  26. </td>
  27. </tr>
Offline Gerard - 11/09/2007 14:35
Avatar van Gerard Ouwe rakker http://www.site...amp;id=478
Offline larssy1 - 11/09/2007 14:39 (laatste wijziging 11/09/2007 14:42)
Avatar van larssy1 MySQL beginner uhm,, ja ik weet.. maar daar staat toch niet precies hoe ik dat wil...

en bovendien werkt het niet, anders had ik het hier niet gepost -_-


en ok ik heb het ingevoerd.. maar hij geeft weer dat ik 2007jaar ben 
Offline Gerard - 11/09/2007 14:41
Avatar van Gerard Ouwe rakker In die functie returned hij toch gewoon de leeftijd. Kan niet inzien waarom dat niet is wat je wilt.....
Offline larssy1 - 11/09/2007 14:48 (laatste wijziging 11/09/2007 14:48)
Avatar van larssy1 MySQL beginner Ja maar hij deed het niet,, vraag me niet waarom..

maar nu heb ik die code ingevoerd maar nu geeft hij weer dat ik 2007 jaar ben
Offline Gerard - 11/09/2007 14:53 (laatste wijziging 11/09/2007 14:55)
Avatar van Gerard Ouwe rakker
  1. <?php
  2.  
  3. function calculateAge($day, $month, $year) {
  4.  
  5. return date('Y') - $year - ($month > date('m') ? 1 : ($day > date('d') ? 1 : 0));
  6.  
  7. }
  8.  
  9. $age = calculateAge(12, 9, 1985);
  10.  
  11. ?>
  12.  
  13. <tr>
  14. <td align="left">Age: <?php echo $age; ?></td>
  15. </tr>


De hapklare oplossing dan maar. Die gekke functie uit de script library maar niet gebruikt want dat zag er wel heel lelijk uit.

Gooi de functie maar ergens tussen jouw eigen functies (dus niet midden in je code, maar gewoon netjes in een ander bestand waar de rest ook staat) en zie maar hoe je het voor de rest implementeert. Ik heb gebruik gemaakt van de engelse naamgeving omdat ik daar zelf meer mee heb dan nederlands.

edit
Natuurlijk zelf even afvangen als alle troep op 0 staat dat hij dan unknown weergeeft. Maar dat kan je zelf wel.
Offline larssy1 - 11/09/2007 15:33
Avatar van larssy1 MySQL beginner uhm,, ja tuurlijk 

ik zal dit gebruiken, heel erg bedankt 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.252s