Alter ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Alter ausgeben

    Hallo,

    ich habe folgendes versucht um das aktuelle Alter auszugeben:

    PHP-Code:
    <?php
      
    include ('config.php');
      
    $abfrage "SELECT nickname, date_format(geburtstag, '%d.%m.%Y') 
                  AS datum FROM mitglieder 
                  ORDER BY MONTH(geburtstag), DAYOFMONTH(geburtstag)"
    ;
      
    $ergebnis mysql_query($abfrage);
      
    $tag   'd';
      
    $monat 'm';
      
    $jahr  'Y';
      
    $jetzt mktime(0,0,0,date("m"),date("d"),date("Y"));
      
    $geburtstag mktime(0,0,0,$monat,$tag,$jahr);
      
    $alter   intval(($jetzt $geburtstag) / (3600 24 365)); 
      echo 
    "<table id='anmeldetabelle'><tr>";
      echo 
    "<th class='links'>Nickname</th>";
      echo 
    "<th class='rechts'>Geburtsdatum</th>";
      echo 
    "<th class='rechts'>Alter</th>";
      while(
    $row mysql_fetch_object($ergebnis))
      {
      echo 
    "<tr><td class='links'>";
      echo 
    $row ->nickname;
      echo 
    "</td><td class='rechts'>";
      echo 
    $row ->datum;
      echo 
    "</td><td class='rechts'>";
      echo 
    $alter;
      }
      echo 
    "</td></tr></table>";
      
    ?>
    Wenn ich es so mache sind alle User 37 Jahre alt und es erscheint folgende Fehlermeldung:

    PHP-Code:
    Warningmktime() expects parameter 4 to be longstring given in 
    J
    :\xampp\mitglieder\geburtstage.php on line 28 
    Zeile 28 ist folgende:

    PHP-Code:
    $geburtstag mktime(0,0,0,$monat,$tag,$jahr); 
    Wenn ich Zahlen direkt einsetze funktioniert es:

    PHP-Code:
      $tag   '1';
    $monat '1';
    $jahr  '1940'
    Was muss man bei $tag, $monat und $jahr einsetzen damit das Alter anzeigt wird?


    Grüße von Sven

  • #2
    NATÜRLICH die Variablen die Du im MySQL-Query ausliest und nicht einfach Buchstaben, oder hast Du auch am d.m.Y Geburtstag? Dann gratuliere ich herzlich...
    [COLOR=orangered]Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil![/COLOR]

    cubetech in Bern » Webdesign, Infrastruktur, Social Media, VoIP

    Kommentar


    • #3
      mhm....schau im MySQL Handbuch mal nach TIMESTAMPDIFF(...) und benutze YEAR als Intervall und datum und NOW() als Minuend und Subtrahend, dann kommst du sauberer und einfacher zum Ziel.

      Kommentar


      • #4
        Hallo,

        dankeschön für Eure Tipps.

        Das habe ich jetzt und es funktioniert:

        PHP-Code:
        <?php
          
        include ('config.php');
          
        $abfrage "SELECT nickname, date_format(geburtstag, '%d.%m.%Y') 
                      AS datum,
                      TIMESTAMPDIFF(YEAR, geburtstag, CURDATE()) 
                      AS diff FROM mitglieder 
                      ORDER BY MONTH(geburtstag), DAYOFMONTH(geburtstag)"
        ;
          
        $ergebnis mysql_query($abfrage);
          echo 
        "<table id='anmeldetabelle'><tr>";
          echo 
        "<th class='links'>Nickname</th>";
          echo 
        "<th class='rechts'>Geburtsdatum</th>";
          echo 
        "<th class='rechts'>Alter</th>";
          while(
        $row mysql_fetch_object($ergebnis))
          {
          echo 
        "<tr><td class='links'>";
          echo 
        $row ->nickname;
          echo 
        "</td><td class='rechts'>";
          echo 
        $row ->datum;
          echo 
        "</td><td class='rechts'>";
          echo 
        $row ->diff;
          }
          echo 
        "</td></tr></table>";
          
        ?>
        Ist das jetzt Codetechnisch ok so, oder kann man
        da noch etwas optimieren?


        Grüße von Sven

        Kommentar

        Lädt...
        X