[MySQL] Doppelter datenbankeintrag vermeiden

foryoudo

Member
25 Mai 2006
12
0
Hey,

mir ist heute aufgefallen das wenn ich in meinem Ticket script einem User auf seine Frage eine antwort gebe und das dann abschicke wird in der Datenbank der eintrag erfolgreich gespeichert.

Nun meine problem:

Nach ein paar sekunden wird nochmal ein danbank eintrag erzeugt nur das das feld text leer bleibt.

So sieht es dann aus:

id userid person zeit status ticket text
255 admin Support 1148587402 1 254 Antwort bla bla
256 admin Support 1148587423 1 254


PHP-Version: 4.3.10
MySQL-Version: 4.1.10a
 
setzt das feld ticket als unique im php myadmin

*edit ist aber evtl keine lösung dann geht warscheinlich das antworten nicht mehr
 
strolch00 schrieb:
setzt das feld ticket als unique im php myadmin

Wie setze ich das feld auf unique!

Edit: Habe es gefunden nur leider gibt er mir den fehler aus!!!!

#1062 - Duplicate entry '125' for key 2
 
Zuletzt bearbeitet:
Wenn du einen UNIQUE-Eintrag ändern willst, verwende statt INSERT INTO das REPLACE INTO-Statement ;)
 
Ich sollte doch das feld ticket auf unique setzen.

Und nicht ein eintrag.

Oder was verstehe ich da jetzt nicht ganz!
 
foryoudo schrieb:
Oder was verstehe ich da jetzt nicht ganz!
Ich denke mal, außer dir versteht noch niemand, was du eigentlich vor hast ;)

Ich hab dir nur gesagt, was du tun kannst, um einen UNIQUE-Index trotzdem zu überschreiben.
 
Sorry haber in weiß leider nicht alles.

Hat leider nichts gebracht er hat mir fast alle einträge gelöscht.

Was könnte das noch sein das ein zweite eintrag in der Datenbank gemacht wird.

Das komische ist auch noch wenn der User auf ein Ticket antwortet wird nur dieser eintrag in der Datenbank gespeichert.

Oder liegt es an MYSQL weil letzte Woch hatte ich den Server neuinstalliert und jetzt ist eine neuere Version auf dem Server.
 
foryoudo schrieb:
Sorry haber in weiß leider nicht alles.

Hat leider nichts gebracht er hat mir fast alle einträge gelöscht.

Was könnte das noch sein das ein zweite eintrag in der Datenbank gemacht wird.
Du kennst doch den Code, wir nicht ;)
Da jetzt ne Antwort zu geben, wäre eine wahrsagerische Meisterleistung :mrgreen:
 
also folgendes ich hatte auch geschrieben das das ticketsystem dann auch fehler bringen wird

poste einfach mal dienen code der datei die du zum antworten verwendest dann kann man mehr sagen wo der fehler ist

und das feld solltest du wieder von unique befreien ist nicht gut denke ich
 
Ich denke mal du arbeitest mit mehreren Insert Intos in deinem Skript.

Wenn ich jetzt alles richtig gelesen haben, kommt bei einer Antwort des Users nur ein Eintrag. Ich denke mal, beim erstellen des Tickets gibt es zwei Insert die Ausgeführt werden.
In den FAQs gibt es einen Beitrag (hab jetzt keine Lust zu suchen) wo thehacker (glaub er wars) erklärt, wie man Fehler finden kann, mit ganz vielen echos. Ließ dir den mal durch und wende ihn auf dein Script an.

Und jetzt mal was ganz allgemeines: Was willst du eigentlich. Du hast uns ein Problem beschrieben, doppelte Einträge. Und nun? Willst du noch nen dritten Eintrag haben? Willst du dass die doppelten Einträge gelöscht werden? Willst du das, wenn das Skript ausgeführt wird, nur einmal in die Datenbank geschrieben wird? Ich denke mal du meinst das letzte. :D


*edit: sehe gerade, das steht im Titel ... schreib es trotzdem lieber nochmal in den normalen Beitrag rein, ist wesentlich besser, wenn man nicht alles vom Titel lesen kann und man trotzdem den Beitrag ließt.