hits zählen

Linyx

Mitglied
Hallo,

ich möchte gerne wissen wieoft eine seite aufgerufen wurde.
ich habe folgenden link http://meineseite.de/index.php?site=14

nun möchte ich das in meiner mysql datenbank immer bei der id 14 in der spalte hits +1 geschrieben wird als in der db steht bei id 14 z.B. bei hits 459 nun besucht jemand die seite dann soll aus 459 460 werden und wenn jemand auf http://meineseite.de/index.php?site=27 geht dann soll bei der id 27 bei hits wenn vorher 43 war auf 44 geändert werden wie mache ich das?


MFG
Linyx
 
du erstellst dir ne sql tabelle mit diesen spalten:

counter_id | site_id | hits


dann schreibst du eine funktion die folgendes macht:
PHP:
//request der ID
requested_id = mysql_real_escape_string(REQUEST[site_id]);
// Update der Tabelle
$do = mysql_query("update countertabelle set hits = hits+1 where site_id = '$requested_id' ");

Diese funktion includierst du bei allen deinen seiten..

Natürlich würde ich dieses script hier noch etwas ausbauen, z.B. erstmal prüfen ob es diese ID überhaupt gibt etc...
 
Darauf hättest auch du kommen können...

Hi,

ich habe dieses Post hier nur editiert, weil mir noch keiner auf meine Frage geantwortet hat.
Dadurch habe ich Zeit, dir zu helfen.
Falls meine Antwort dir weiterhilft, dann bedank dich nicht bei mir, sondern bei allen anderen Boardmitgliedern :P

Also isch happ da ma wat vorb-reitet
PHP:
<?php
$SQL          = array();
$SQL['Host']  = "localhost";              //Adresse des MySQL Servers
$SQL['User']  = "root";                   //Name des Benutzers
$SQL['Pass']  = "hoffentlichnichtroot";   //Das Passwort zum Benutzer
$SQL['Name']  = "testdatenbank";          //Name der Datenbank
$SQL['Table'] = "testtabelle";            //Name der Tabelle

if(($SiteID = intval($_GET['site'])) == 0)
  die("Fehlerhafte Seiten ID <br />\n");

$SQL_Query = "UPDATE ".$SQL['Table']." SET hits = hits+1, date = '".time()."' WHERE id = '".$SiteID."'";

$SQL_Link = mysql_connect($SQL['Host'], $SQL['User'], $SQL['Pass'])
  or die("Konnte keine Verbindung zum SQL Server herstellen<br />\n".mysql_error());
mysql_select_db($SQL['Name'])
  or die("Konnte die Datenbank nicht ausw&auml;hlen<br />\n");
mysql_query($SQL_Query)
  or die("Konnte die Anfrage nicht ausf&uuml;hren<br />\n".mysql_error());
mysql_close($SQL_Link);
?>
Noch etwas zum Skript (, welches nur ein Beispiel ist):
> Es sollte recht sicher gegen SQL-Injektionen sein.
> Eine Seite mit der ID 0 sollte nicht existieren, starte bei 1!
> Entsprechende Rows müssen in deiner Tabelle schon vorhanden sein.
> "die(/*...*/);" ist sehr unelegant, da es die Seiten ggf. total auseinander nimmt, benutze lieber "!"/"false" und "if" samt "else". :P
> Ohne IP Sperre/Log ist das Skript unsinnig und gefährlich.
 
Zuletzt bearbeitet:
hallo brainsucker

ich habe ne sql tabelle mit folgenden spalten

id
name
date
hits

Füge deiner Tabelle noch eine spallte seiten_id hinzu.

Das feld id bei dir ist ja vermutlich auf autoincrement.

In dieser Tabelle musst du einmalig alle deine seiten einmal eintragen. Danach kannst du mein obiges SQL Statement benutzen um die hits entsprechend hochzählen zu lassen...
 
Zurück