Eintrag wird nicht in die SQL DB ausgeführt

26toto26

Mitglied
Hallo Leute,

ich möchte wissen woher meine Besucher kommen dafür habe ich folgendes Script geschrieben:
PHP:
$url =  $_SERVER['HTTP_REFERER'] ;
if ($db) {
	if (mysql_select_db($datab, $db) ) {
	
		
		$query = "UPDATE $table set count = count + 1 where url = '$url'";
		$result = mysql_query($query);;
		
		if (mysql_affected_rows() == 0) {
			$sql_insert = "insert into $table (url, count) Values ('$url', '1')";
			mysql_query($sql_insert);
			}
		}
	}
?>

Leider erzeugt dieses Script nur einen Eintrag in der DB also eine Zeile. Ist die DB leer wird ein Eintrag ausgeführt sobald aber ein Eintrag vorhanden ist wird kein neuer mehr hinzugefügt. Wo liegt der Fehler

Danke und Gruß
Toto
 
Code:
$query = "UPDATE $table set count = count + 1 where url = '$url'";
        $result = mysql_query($query);;
        
        if (mysql_affected_rows() == 0) {
            $sql_insert = "insert into $table (url, count) Values ('$url', '1')";
sobald die URL eingetragen wurde, ist das UPDATE erfolgreich, und dein INSERT wird nicht ausgeführt, da mysql_affected_rows() dann nicht mehr 0 ist.
 
Wie mache ich das dann das er wenn die URL in meiner DB noch nicht vorhanden ist diese einträgt, bzw. erst prüft ob diese URL in der DB ist dann Counter + 1. Wenn nicht dann URL eintragen und Counter +1 setzen.

Ich habe keine Ahnung mehr
 
Ich würds genauso machen, wie du es bisher hast, ehrlichgesagt :eek:

Du willst doch sicher loggen, wie oft Besucher woher kommen, und soweit ich es sehe, macht das Ganze genau das, was du willst... ist die URL nicht in der DB vorhanden, wird ein neuer Datensatz erzeugt, mit dem count-Wert 1...andernfalls wird count hochgezählt.
 
So in der Art:

PHP:
<?php
$url =  $_SERVER['HTTP_REFERER'] ;
$sql = mysql_query("SELECT * FROM tabelle WHERE URL='".$url."'") or die(mysql_error());
while($row = mysql_fetch_array($sql)) {
 $mUrl = $row['url'];
 $count = $row['count'];
}
if($mUrl == $url) {
 mysql_query("UPDATE Tabelle SET count='".$count++."' WHERE url='".$mUrl."'") or die(mysql_error());
} else {
 mysql_query("INSERT INTO tabelle SET url='".$url."', count='1'") or die(mysql_error());
}
?>

So würde ich es lösen
 
Bekomme leider diese Fehlermeldung:

Notice: Undefined variable: mUrl in /var/www/web31/html/best/ref/ref.php on line 35
Duplicate entry '0' for key 1

line 35 ist diese

PHP:
if($mUrl == $url) {
 
Hast du error_reporting eingeschaltet?

Wenn ja kommentiere es mal aus

Passiert eigentlich überhaupt was oder rein nur diese Fehlermeldung?
 
Dann versuch dieses:

PHP:
<?php
$url =  $_SERVER['HTTP_REFERER'] ;
$sql = mysql_query("SELECT * FROM tabelle WHERE URL='".$url."'") or die(mysql_error());
while($row = mysql_fetch_array($sql)) {
 $mUrl = $row['url'];
 $count = $row['count'];

if($mUrl == $url) {
 mysql_query("UPDATE Tabelle SET count='".$count++."' WHERE url='".$mUrl."'") or die(mysql_error());
} else {
 mysql_query("INSERT INTO tabelle SET url='".$url."', count='1'") or die(mysql_error());
}
}
?>
 
Also in die DB wird nichts eingetragen... Aber wenn ich die Seite direkt Aufrufe bekomme ich folgenden Fehler:

Undefined index: HTTP_REFERER in /var/www/web31/html/best/ref/ref.php on line 29
PHP:
$url =  $_SERVER['HTTP_REFERER'] ;

Kann mir keiner Weiterhelfen? Wie bekommt Ihr mit woher die Besucher kommen? Ist ja schon ein wichtiges Thema, oder?

Gruß
Toto
 
Zurück