AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

MySQL Doppeleintrag bei INSERT

Ein Thema von MSSSSM · begonnen am 15. Okt 2008 · letzter Beitrag vom 15. Okt 2008
Antwort Antwort
Benutzerbild von MSSSSM
MSSSSM

Registriert seit: 18. Apr 2008
223 Beiträge
 
Delphi 7 Professional
 
#1

MySQL Doppeleintrag bei INSERT

  Alt 15. Okt 2008, 13:41
Hallo Community des DP-FoRuMs!

Ich habe folgenden Code, und dazu die Frage: Warum kommen dann zwei Einträge mit 1-3 Sekunden
Unterschied?

Code:
if ($_GET['mode']=='view' && (is_numeric($_GET['id']))) {
   echo "<h3>Ticket $_GET[id]</h3><hr />

";
   $query = mysql_query("SELECT zeit,subject,message,geschlossen FROM awm_tbl_tickets WHERE id_ticket = $_GET[id]");
   $row = mysql_fetch_object($query);
 
   $row->message = nl2br($row->message);        
   $query = mysql_query("SELECT zeit,subject,message,id_user_from FROM awm_tbl_tickets WHERE id_ticket_main = $_GET[id]");      
   while ($row_t = mysql_fetch_object($query)) {
     $row_t->message = nl2br($row_t->message);
       if ($row_t->id_user_from == $id_user) {
         $theuser = $username;
       } else {
         $theuser = "Support";
         
     
   } 
} elseif ($_GET['mode']=="answer" && !empty($_POST['message']) && !empty($_POST['subject']) && is_numeric($_GET['id'])) {
      $zeit = time();
      $xx = mysql_query("INSERT INTO awm_tbl_tickets (id_ticket_main,zeit,id_user_from,subject,message)
                         VALUES  
                         ($_GET[id],$zeit,$id_user,'$_POST[subject]','$_POST[message]')");
      if ($xx) {
          echo "
         

<fieldset><legend>Antwort gesendet!</legend>

</label>
          Die Antwort wurde gesendet!

<label>Wenn ihr Browser die automatische Weiterleitung nicht unterst&uuml;tzt, klicken sie bitte <a href=\"ticket.php?mode=view&id=$_GET[id]\">hier</a></label></fieldset>
          ";
      }   
}

Also, ich habe es auch schon mit einem UNIQUE Index versucht, da die Einträge aber 1-5 Sekunde Unterschied haben gings nicht.
(Ich habe vom Code lediglich die echo Ausgaben weggelassen!)


Danke, Marius!


Edit: Der Code ist von mir, das habe ich geschrieben.
Marius
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: MySQL Doppeleintrag bei INSERT

  Alt 15. Okt 2008, 13:47
Hallo,

weiß nich', vermute, dass die Anfrage beim Webserver 2 mal ankommt. Schau doch mal in die Logs, ob diese Vermutung stimmt, dann liegt der Fehler nicht in Deinem Code, sondern in der Art, wie die Anfrage(n) beim Webserver ankommen. Die Zeitverzögerung läßt drauf schließen, dass hier zwei Anfragen ankommen.
  Mit Zitat antworten Zitat
Benutzerbild von MSSSSM
MSSSSM

Registriert seit: 18. Apr 2008
223 Beiträge
 
Delphi 7 Professional
 
#3

Re: MySQL Doppeleintrag bei INSERT

  Alt 15. Okt 2008, 13:54
Stimmt...
Code:
87.147.99.61 - - [15/Oct/2008:12:52:12 +0000] "POST /de/game/ticket.php?mode=answer&id=1 HTTP/1.1" 200 5400 "http://web0.p013.purple.fastwebserver.de/de/game/ticket.php?mode=view&write=1&id=1" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3"


----------------------




87.147.99.61 - - [15/Oct/2008:12:52:15 +0000] "POST /de/game/ticket.php?mode=answer&id=1 HTTP/1.1" 200 5400 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3"
Aber das passiert bei anderen POSTs von anderen Seiten von AWM nicht...
Wie kann ich das beheben?


Marius
Marius
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

Re: MySQL Doppeleintrag bei INSERT

  Alt 15. Okt 2008, 14:59
hm, weiß nich:

Fehler in der Seite, so dass der Browser meint zweimal antworten zu müssen.
Tritt das Problem mit jedem Browser auf oder nur mit einem speziellen.

id_ticket ist wohl 'ne eindeutige ID.

Bei
Code:
} elseif ($_GET['mode']=="answer" && !empty($_POST['message']) && !empty($_POST['subject']) && is_numeric($_GET['id']))
per Select prüfen, ob es zu dem id_ticket in den letzten Sekunden schon was gab, wenn ja, nicht einfügen sonst doch einfügen. Da musst Du entscheiden, wie Du mit diesem "Zustand" umgehen willst.

Wenn Du Dir die beiden Auszüge aus dem Log genau anschaust, wirst Du feststellen, dass sie von der gleichen IP und gleichem Browser kommen mit zeitlicher Differenz und etwas unterschiedlichem Aufbau. Einmal mit einer URL, einmal mit einem -. Das kommt mir irgendwie komisch vor, eventuell kannst Du in Deinem Quelltext aber gerade an dem Unterschied festmachen, ob Du die Daten speicherst oder verwirfts und 'ne Fehlermeldung... ausgibst.
  Mit Zitat antworten Zitat
Benutzerbild von MSSSSM
MSSSSM

Registriert seit: 18. Apr 2008
223 Beiträge
 
Delphi 7 Professional
 
#5

Re: MySQL Doppeleintrag bei INSERT

  Alt 15. Okt 2008, 17:05
Ich habs jetzt so gelöst:
Zuerst wird das ganze inklusive Message usw. an einen bestimmten Mode geschickt (steht im Gaanz oben in der Seite), die leitet dann auf einen anderen Mode um der dann die Nachricht anzeigt!
Marius
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz