YourWBB


yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » counter » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 1.909 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Zum Ende der Seite springen counter
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
neubau-city neubau-city ist männlich
Mitglied


Dabei seit: 17.01.06
Beiträge: 83
Forenversion: 2.3

 counter Antworten Zitieren Editieren Melden       UP

hallo ich habe mir einen counter auf die seite eingebaut heir ist der code dafür

SQL
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
CREATE TABLE `counter` (
  `id` tinyint(3) unsigned NOT NULL auto_increment,
  `ip` varchar(255)  default NULL,
  `zeit` int(11) default NULL,
  `total` tinyint(4) default NULL,
  PRIMARY KEY  (`id`)
) AUTO_INCREMENT=2 ;

INSERT INTO `counter` (`id`, `ip`, `zeit`, `total`) VALUES (1, '0', 0, 0); 


counter.php
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
<?php

 //Verbindung zur Datenbank
 class config {
    const host = 'localhost';
    const user = 'dbuser';
    const pass = 'dbpass';
    const data = 'counter';
 }
 mysql_connect(config::host,config::user,config::pass) || die(mysql_error());
 mysql_select_db(config::data) || die(mysql_error());
 
 //Jetzt
 $jetzt = time();
 
 //Total auslesen
 $getcount = mysql_fetch_object(mysql_query("SELECT total FROM counter WHERE id = '1' LIMIT 1")); 
 
 //IP speichern, falls noch nicht vorhanden
 $query = mysql_query("SELECT ip, zeit, total FROM counter WHERE ip = '".$_SERVER['REMOTE_ADDR']."' LIMIT 1");
 if(mysql_num_rows($query) == 0) {
    $newcount = $getcount->total+1;
    $update = mysql_query("UPDATE counter SET total = '".$newcount."' WHERE id = '1' ") || die(mysql_error());
    $insert = mysql_query("INSERT INTO counter (ip, zeit) VALUES ('".$_SERVER['REMOTE_ADDR']."', '".$jetzt."')") || die(mysql_error());
 } else {
     $newcount = $getcount->total;
 }
 
 //Einträge älter als 2 Tage löschen
 $alt = $jetzt - (3600*48);
 mysql_query("DELETE FROM counter WHERE zeit < '".$alt."' && id != '1'");

 //Besucher online auslesen
 $cnt_online = mysql_query("SELECT COUNT(*) FROM counter WHERE zeit + 300 > '".$jetzt."'"); //300 entspricht 300 Sekunden, also 5 Minuten
 $online = mysql_result($cnt_online, 0, 0);
 
 //Besucher gestern auslesen
 $cnt_gestern = mysql_query("SELECT COUNT(*) FROM counter WHERE zeit >= '".mktime(-24, 0, 0)."' && zeit <= '".mktime(-1, 59, 59)."'"); 
 $gestern = mysql_result($cnt_gestern, 0, 0);
 
 //Besucher heute auslesen
 $cnt_heute = mysql_query("SELECT COUNT(*) FROM counter WHERE zeit >= '".mktime(0, 0, 0)."' && zeit <= '".mktime(23, 59, 59)."'"); 
 $heute = mysql_result($cnt_heute, 0, 0);
 
 //Ausgabe
 echo "Heute: ".$heute."<br/>";
 echo "Gestern: ".$gestern."<br/>";
 echo "Total: ".$newcount."<br/>";
 echo "Online: ".$online."<br/>";  
 
?>


ok er funkt. dan am nächsten tag schau ich auf meine seite und da sehe ich das der ganze zeit verschoben ist und wo der counter sein soll steht die meldung hier

code:
1:
Duplicate entry '255' for key 1


was bedeutet das den?
danke im voraus
21.08.06 23:11 neubau-city ist offline E-Mail WWW Finden Als Freund hinzufügen
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » counter