Entwickler-Ecke

Off Topic - SQL Problem


Dude566 - Mi 30.03.11 14:52
Titel: SQL Problem
Hallo Community,

ich bin gerade dabei ein Script in PHP zu schreiben welches die Besucher zählt und ausgeben soll, das ganze möchte ich dann per Include in mein phpBB Forum einfügen.

Doch habe ich ein Problem beim Hinzufügen der Daten in die Datenbank, der Abruf funktioniert, was ich anhand von Testeingaben via phpMyAdmin getestet habe.

Die datenbank heißt "datenbank" und die Tabelle "visitors" enthält ein Feld namens "ip" vom Typ VarChar und ein Feld namens "date" vom Typ Date.

Hier mal ein Auszug aus meinem Script

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
        // Besucherzeit und IP ermitteln
  $ip = $_SERVER["REMOTE_ADDR"];
  $timestamp = time();
  $date = date("Y.m.d", $timestamp);

        // SQL-Abfragen definieren
  $query1 = "INSERT INTO visitors VALUES (".$ip.", ".$date.")";

        // Datensatz hinzufügen
  $result1 = mysql_query($query1);

        // Überprüfung
  if(!$result1) {
    echo('<script language="Javascript">alert("Fehlgeschlagen");</script>');
  }


Und da es nicht funktioniert wird natürlich jedes mal der Alert via JavaScript aufgerufen.

Habt ihr eine Ahnung was falsch sein könnte?


jaevencooler - Mi 30.03.11 15:14

Moin,



was für einen Alert / Fehlermeldung bekommst Du den zurück ?


Gruß Michael


Horschdware - Mi 30.03.11 15:33

Mal ins Blaue geraten: Der Primärschlüssel der Tabelle ist "IP". Ist die entsprechende IP bereits einmal in der Tabelle vorhanden, so kann natürlich kein weiteres Insert mit dem gleichen Primärschlüssel erfolgen.


Dude566 - Mi 30.03.11 15:40

Naja meine eigener Alert wie man oben im Code sehen kann.

Ich hab IP nicht speziell als Primary Key angegeben, wenn allerdings automatisch das erste Feld zum primären wird dann ist er das wohl.

Aber es sind ja noch keine Datensätze in der Tabelle vorhanden bis auf die von mir manuell hinzugefügten und die entsprechen nicht der Ip die neu hinzu kommen sollte.

Insofern kann da der Fehler nicht liegen. ;)

Edit: Habe das Problem gelöst, hatte vergessen die Value Werte als Strings zu kennzeichnen:

Quelltext
1:
$query1 = "INSERT INTO visitors VALUES ('".$ip."''".$date."')";                    


HenryHux - Mi 30.03.11 18:35

Hi,

bei solchen Situationen hilft es oft einmal die mysql Errors abzufragen.
Dazu musst du einfach mal ein echo mysql_errors(); hinzufügen, dann zeigt er dir den Fehler eig ganz gut an, wenn es was mit der DB zu tun hat.

Lg