Hallo ihr Profis =) ich brauch mal eure hilfe.. hab ne Function,
die aus dem Geburtsdatum das Alter ausrechnet, nämlich diese hier:
Das ist die alter.inc.php
funktioniert auch einwandfrei, bis auf die Sache mit denen,
die vor 1970 geboren sind, da weiß ich auch noch nich wie ich das mache..
Naja, jedenfalls, gibt es jetz das Problem das ich ein anderes Script noch habe,
nämlich dieses hier:
Das Funktioniert normalerweise auch
aber jetz meine Frage... Wenn jetz jetz noch das
Alter von einen User in die Tabelle Online gespeichert
wird, wie es ja in der 2. Funtion so ist... ist das Alter völlig falsch!
Wie kann das denn sein? Wo ist da der fehler?
Als Beispiel habe ich das Geburtsdatum 29.03.1988 genommen,
als normale Ausgabe zeigt es ganz normal 17 an,
so wie es ja auch sein soll, aber nach den speichern in
die SQL Tabelle Online, wird dort 36 gespeichert!
Ich blick da jetz echt nicht durch, warum das so ist!
Kann mir vielleicht irgendwer helfen? Währe echt lieb!
Wenn Ihr noch irgendwas braucht, sagt es mir!!!
Danke schonmal.
Liebe Grüße
petschi
die aus dem Geburtsdatum das Alter ausrechnet, nämlich diese hier:
Das ist die alter.inc.php
PHP-Code:
<?
function alter($geburtsdatum) {
//Geburtstag in Timestamp konvertieren
list($gebjahr, $gebmonat, $gebtag) = explode("-", $geburtsdatum);
$geburt = mktime(0,0,0,$gebmonat,$gebtag,$gebjahr);
// Aktuelles Datum als Timestamp
$aktuell=time();
// Millisekunden seid Geburt
$msek = $aktuell - $geburt;
//Alter in Tagen
$tage = floor($msek/(3600*24));
//Alter in Jahren
$jahr = floor($tage/365);
$gesamt = $gebjahr+$jahr;
// Schaltjahre berücksichtigen (Jahreszahl durch 4 teilbar, dann Schaltjahr)
$i=0;
for($gebjahr; $gebjahr < $gesamt; $gebjahr++) {
if($gebjahr % 4 == 0) {
$i=$i+1;
}
}
if ($tage-((365*$jahr)+$i) < 0) {
$jahr--;
}
return $jahr;
}
$usralter = alter($gebdat);
?>
die vor 1970 geboren sind, da weiß ich auch noch nich wie ich das mache..
Naja, jedenfalls, gibt es jetz das Problem das ich ein anderes Script noch habe,
nämlich dieses hier:
PHP-Code:
<?
require("connect.inc.php");
$abfrageO = @mysql_query("SELECT User************
FROM users WHERE UserName = '".$_SESSION['UserName']."'");
$ergebnisO = @mysql_fetch_array($abfrageO);
$usr************ = $ergebnisO['User************'];
require("alter.inc.php");
$sqlonline = "SELECT COUNT(*) as Anzahl
FROM Online WHERE IP = '".$_SERVER['REMOTE_ADDR']."'";
$ergebnisonline = mysql_query($sqlonline)
OR die(mysql_error());
$ausgabeonline = mysql_fetch_assoc($ergebnisonline);
if($ausgabeonline['Anzahl']) {
// Datum UPDATEN
$sqlonline = "UPDATE Online SET Datum = NOW()
WHERE IP = '".$_SERVER['REMOTE_ADDR']."' AND
UserNameO = '".$_SESSION['UserName']."'";
mysql_query($sqlonline) OR die(mysql_error());
} else {
// Neuer USER
$sqlonline = "INSERT INTO
Online (IP, Datum, UserNameO, ************O, AlterO) VALUES
('".$_SERVER['REMOTE_ADDR']."',
NOW(), '".$_SESSION['UserName']."', '".$usr************."', '".$usralter."')";
mysql_query($sqlonline) OR die(mysql_error());
}
// Alte Datensätze LÖSCHEN
$sqlonline = "DELETE FROM Online WHERE
DATE_SUB(NOW(), INTERVAL 3 MINUTE) > Datum";
mysql_query($sqlonline) OR
die(mysql_error());
// Anzahl AUSGEBEN
$sqlonline = "SELECT COUNT(*) as Anzahl
FROM Online";
$ergebnisonline = mysql_query($sqlonline)
OR die(mysql_error());
$ausgabeonline = mysql_fetch_assoc($ergebnisonline);
echo $ausgabeonline['Anzahl'];
?>
aber jetz meine Frage... Wenn jetz jetz noch das
Alter von einen User in die Tabelle Online gespeichert
wird, wie es ja in der 2. Funtion so ist... ist das Alter völlig falsch!
Wie kann das denn sein? Wo ist da der fehler?
Als Beispiel habe ich das Geburtsdatum 29.03.1988 genommen,
als normale Ausgabe zeigt es ganz normal 17 an,
so wie es ja auch sein soll, aber nach den speichern in
die SQL Tabelle Online, wird dort 36 gespeichert!
Ich blick da jetz echt nicht durch, warum das so ist!
Kann mir vielleicht irgendwer helfen? Währe echt lieb!
Wenn Ihr noch irgendwas braucht, sagt es mir!!!
Danke schonmal.
Liebe Grüße
petschi
Kommentar