PHP Counter erstellen

  • Themenstarter Themenstarter stabory
  • Beginndatum Beginndatum
S

stabory

Hallo,

ich möchte meinen eigenen Besuchercounter erstellen. Dazu habe ich mir gedacht, ich lege erstmal, ums vorerst einfach zu halten, eine SQL-Tabelle mit drei Spalten an. Eine für die IP-Adresse, eine fürs Datum und eine für die Session-ID. Die Session-ID des Benutzers wird mit den vorhandenen verglichen. Falls sie schon in der Tabelle steht wird kein weiterer Eintrag gemacht. Die Tabelle, die benutzt wird heißt visits.

Der Code sieht im Moment so aus:

PHP:
         include "config.php";
	session_start();

	
	$sql = "Insert Into visits 
				(IP, Datum, session)
			Values
				('".$_SERVER['REMOTE_ADDR'].", NOW(),".session_id()."')";
	$result = mysql_query($sql)or die(mysql_error() );
	
/*       $sql = "Select 
				Count(*) as Anzahl
			From 
				visits";
	$result = mysql_query($sql);
	$row = mysql_fetch_array($result);
	echo "Visits: ".$row['Anzahl']."<br><br> \n\n";
*/


Leider zeigt er hier die Fehlermeldung "Column count doesn't match value count at row 1" an, was ich nicht beheben konnte bis jetzt.

Kann mir vielleicht einer ne Idee geben?

Vielen Dank schonmam im Vorraus

Roy
 
Zuletzt bearbeitet von einem Moderator:
Erst mal: Eine SQL-Tabelle gibt es nicht (SQL ist eine Sprache), das Ding heißt MySQL-Tabelle... Nur so am Rande :rolleyes:
PHP:
$sql = "INSERT INTO visits 
                (IP, Datum, session)
            VALUES
                ('".$_SERVER['REMOTE_ADDR']."', NOW(),'".session_id()."')";
Hier war ein Fehler - du hast ein paar einfache Anführungszeichen vergessen. Ich hab sie für dich hinzugefügt.
 
Ich bevorzuge die INSERT INTO-Syntax mit SET-Klausel – ist einfach übersichtlicher. Probier mal Folgendes:
PHP:
<?php

	include 'config.php';
	session_start();

	$query = '
		INSERT INTO
		        `visits`
		  SET
		        `IP`      = "'.$_SERVER['REMOTE_ADDR'].'",
		        `Datum`   = NOW(),
		        `session` = "'.session_id().'"
		';
	mysql_query($query)
		or die(mysql_error());

?>
 
Zurück