kostenloser Webspace werbefrei: lima-city


Fehler im MySQL-Query

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sy

    Kostenloser Webspace von sy

    sy hat kostenlosen Webspace.

    hi,

    bestimmt ist die loesung total einfach und ich steh auf der leitung und seh es nur nicht, aber was ist daran falsch?

    $sql = 'INSERT INTO voting(`IP`, `vote`, `Datum`) VALUES ('.$_SERVER["REMOTE_ADDR"].', '.$vote.', '.$time.');';
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Das Semikolon nach der letzten Klammer ist falsch! Das muss weg.

    Beitrag zuletzt geändert: 13.11.2009 16:43:11 von karpfen
  4. Autor dieses Themas

    sy

    Kostenloser Webspace von sy

    sy hat kostenlosen Webspace.

    Oh, das hab ich uebersehen, ich dachte aber das waere egal. trotzdem, es erscheint noch immer die selbe fehlermeldung
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.0.1, 6, 1258126991)'


    das '0.1 is wohl eigentlich der Teil von der IP 127.0.0.1

    Beitrag zuletzt geändert: 13.11.2009 16:56:29 von sy
  5. Ich glaube das Semikolon kann ruhig beiben..

    Probier doch mal
    $sql = 'INSERT INTO voting (`IP`, `vote`, `Datum`) VALUES ("'.$_SERVER["REMOTE_ADDR"].'","'.$vote.'","'.$time.'");';
  6. Autor dieses Themas

    sy

    Kostenloser Webspace von sy

    sy hat kostenlosen Webspace.

    okay, ich glaub da stimmt was mit der tabellenstruktur nicht. der wert 6 ist die bewertung:
    Duplicate entry '6' for key 'PRIMARY'


    Beitrag zuletzt geändert: 13.11.2009 17:00:02 von sy
  7. Das ist natürlich schlecht :-)

    Wenn Du einen auto_increment Wert als ID hast, braucht der natürlich nicht in deinen Insert-Query rein.
  8. Autor dieses Themas

    sy

    Kostenloser Webspace von sy

    sy hat kostenlosen Webspace.

    nein, das ist die bewertung an sich und keine id, habs oben grad editiert

    `Vote` tinyint(5) NOT NULL,
      PRIMARY KEY (`Vote`)
    )


    Beitrag zuletzt geändert: 13.11.2009 17:18:08 von sy
  9. Was, Du hast die Spalte 'vote' als Primary-Key??
    dann solltest Du das herausnehmen und und eine Spalte INT mit auto-increment als Primary Key nehmen.
  10. Autor dieses Themas

    sy

    Kostenloser Webspace von sy

    sy hat kostenlosen Webspace.

    EDIT: Okay, hat sich erledigt, hab das grad falsch verstanden. Danke-

    ich dachte, du meintest, ich solle die tabelle vote also auto_increment machen, weil ich dachte, dass du dachtest, vote waere die id


    Beitrag zuletzt geändert: 13.11.2009 17:14:22 von sy
  11. Du hast jetzt das Problem, dass jeder Wert in der Spalte 'Vote' nur einmal vorkommen darf.
    D.h. du willst irgendetwas mit 2 bewerten, vor Dir hat jedoch schonmal jemand etwas mit 2 bewertet, also kannst Du Deine Stimme nicht abgeben.

    Ich weiss nicht genau, was Du dort bastelst, aber ich denke mal, dass dies nicht gewollt sein kann.
    Lösche einfach den Key und füge optional noch eine Spalte mit auto_increment als Primery Key ein.

    Du kannst ja auf 'Vote' trotzdem einen Key setzen.
    Nur halt keinen Primary.
  12. $sql = "INSERT INTO voting(IP,vote,Datum) VALUES ('".$_SERVER["REMOTE_ADDR"]."', '$vote', '$time')";

    Scheint mir sinnvoller. Die Anführungszeichen fehlen, wenn du '.$_SERVER["REMOTE_ADDR"].' schreibst, weil der Parser aufgrund des Verbindungsoperators davon ausgeht, dass der String endet und mit einem anderen String verbunden werden soll.

    Gruß
    styVe (qap2-Team)

    Beitrag zuletzt geändert: 13.11.2009 20:00:42 von qap2
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!