PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : script problem



blackapple
01.12.2007, 16:53
hallo leute
ich hoffe ihr könnt mir helfen
ich hab ein php script und wenn ich es aufrufe schmiert bei mir xampp ab
ich hab kp why


$db->query("INSERT INTO stats_online VALUES ( ip='".$ip."', time='".time()."' );");
$db->query("SELECT * FROM stats");
$row = $db->fetch();
if ($row['heute_d'] == date("z")) $heute++; else $heute = 1;
if ($row['gestern_d'] == (date("z")-1)) $gestern++; else $gestern = 1;
if ($row['woche_d'] == date("W")) $woche++; else $woche = 1;
if ($row['monat_d'] == date("n")) $monat++; else $monat = 1;
if ($row['jahr_d'] == date("Y")) $jahr++; else $jahr = 1;
$gesamt++;
$db->query("UPDATE stats SET ( heute_d='".date("z")."', gestern_d='".(date("z")-1)."', woche_d='".date("W")."', monat_d='".date("n")."', jahr_d='".date("Y")."', heute='".$heute."', gestern='".$gestern."', woche='".$woche."', monat='".$monat."', jahr='".$jahr."', gesamt='".$gesamt."' ) WHERE id='1';");

dazu gehört noch ne dbclass aber die is in ordnung

2called-chaos
01.12.2007, 18:16
Was willst du damit erreichen wenn man fragen darf?

Ich denke das geht auch einfacher und PHP ist ne Prozedurale Programmiersprache also ist es nicht immer sinnvoll also objektorientiert umzubauen...

Zudem kenne ich das mit dem Insert so:


"INSERT INTO stats_online ('ip','time') VALUES ('$ip','".time()."')"

Dann empfiehlt es sich sogut wie nie den Select Operator * (oder auch Todesstern) zu verwenden...

Dann willst du Variablen um eins erhöhen die vorher nicht definiert wurden. Also $gesamt++; und die anderen noch.

Da du am Ende nur die Werte der id 1 updatest solltest du dies auch im select befehl mit einbeziehen!

Und ich weis immer noch nicht was du mit dem Code da bewirken willst o.O

Bitte ein wenig erklären :)

Mfg

Chaos

blackapple
01.12.2007, 18:28
also das ganze soll ein counter sein mit online anzeige




hier nochmal der ganze code:

$ip = $_SERVER['REMOTE_ADDR'];
$db->query("SELECT * FROM stats_online");
$ignore = false;
while ($row = $db->fetch()) {
if (($row['time']+600) < time()) {
$db->query("DELETE FROM stats_online WHERE ip='".$row['ip']."'");
}
if ($row['ip'] == $ip && ($row['time']+600) > time()) {
$db->query("UPDATE stats_online SET time='".time()."' WHERE ip='".$row['ip']."'");
$ignore = true;
}
}
if ($ignore == false) {
$db->query("INSERT INTO stats_online ('ip','time') VALUES ('$ip','".time()."')");
$db->query("SELECT * FROM stats");
$row = $db->fetch();
$heute = $row['heute'];
$gestern = $row['gestern'];
$woche = $row['woche'];
$monat = $row['monat'];
$jahr = $row['jahr'];
$gesamt = $row['gesamt'];
if ($row['heute_d'] == date("z")) $heute++; else $heute = 1;
if ($row['gestern_d'] == (date("z")-1)) $gestern++; else $gestern = 1;
if ($row['woche_d'] == date("W")) $woche++; else $woche = 1;
if ($row['monat_d'] == date("n")) $monat++; else $monat = 1;
if ($row['jahr_d'] == date("Y")) $jahr++; else $jahr = 1;
$gesamt++;
$db->query("UPDATE stats SET ( heute_d='".date("z")."', gestern_d='".(date("z")-1)."', woche_d='".date("W")."', monat_d='".date("n")."', jahr_d='".date("Y")."', heute='".$heute."', gestern='".$gestern."', woche='".$woche."', monat='".$monat."', jahr='".$jahr."', gesamt='".$gesamt."' ) WHERE id='1';");
} else {
$db->query("SELECT * FROM stats");
$row = $db->fetch();
$heute = $row['heute'];
$gestern = $row['gestern'];
$woche = $row['woche'];
$monat = $row['monat'];
$jahr = $row['jahr'];
$gesamt = $row['gesamt'];
}
$db->query("SELECT * FROM stats_online");
$online = $db->num_rows();