AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP] Warum wird hier INSERT doppelt ausgeführt?
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Warum wird hier INSERT doppelt ausgeführt?

Ein Thema von Igotcha · begonnen am 31. Mär 2007 · letzter Beitrag vom 31. Mär 2007
Antwort Antwort
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#1

[PHP] Warum wird hier INSERT doppelt ausgeführt?

  Alt 31. Mär 2007, 10:20
Hi zusammen,

bei folgendem Script habe ich das Problem, dass nach Ausführen des Inserts 2 identische Datensätze in der DB sind.

Aufgerufen wird das Script selbst mit: index.php?view=network&action=show&id=$row[fromid]&process=add

SQL-Code:
if ($_GET[action] == 'show')
{
   // Prüfen, ob hinzugefügt, oder gelöscht werden soll
   if (isset($_GET[process]))
   {
      if ($_GET[process] == 'add')
      {
         $sql = "INSERT INTO contacts (aid, bid, time) VALUES ($_SESSION[user_id], $_GET[id], now())";
         mysql_query($sql) or die(mysql_error());
         echo "eingefügt";
         exit; // Nur testweise drin, da selbst mit exit 2 Datensätze erstellt werden
         /*$sql = "DELETE FROM contacts_pending WHERE fromid=$_GET[id]";
         mysql_query($sql) or die(mysql_error());
         echo "gelöscht";*/

      }
      /*else if ($_GET[process] == 'delete')
      {
         $sql = "DELETE FROM contacts_pending WHERE fromid=$_GET[id]";
         mysql_query($sql) or die(mysql_error());
         echo "nicht hierhergekommen";
      }*/

   }
   // -------------------------------------------------
   
   echo "Folgende Kontaktanfragen liegen vor:";
   echo "<hr>";
   // Kontaktanfragen auslesen
   $sql = "SELECT p.fromid, p.comment, u.name, DATE_FORMAT(p.time, '%d.%m.%Y, %H:%i:%s') AS time FROM contacts_pending p"
        . " JOIN user u ON u.id=p.fromid"
        . " WHERE toid=$_SESSION[user_id] ORDER BY time DESC";
   $result = mysql_query($sql) or die(mysql_error());
   $_count = 0;
   echo "<table width=\"100%\">";
   echo "<tr><td>[b]Nr.[/b]</td><td>[b]Mitglied[/b]</td><td>[b]Kommentar[/b]</td><td>[b]vom[/b]</td><td>[b]Aktion[/b]</td></tr>";
   while ( $row = mysql_fetch_assoc( $result ) )
   {
      $_count++;
      echo "<tr><td>$_count</td><td><a href=\"index.php?view=profil&id=$row[fromid]&action=show\">$row[name]</a></td><td>$row[comment]</td><td>$row[time]</td><td><a href=\"index.php?view=network&action=show&id=$row[fromid]&process=add\">hinzufügen</a> | <a href=\"index.php?view=network&action=show&id=$row[fromid]&process=delete\">löschen</a></td></tr>";
   }   
   echo "</table>";
}
Gruß Igotcha
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#2

Re: [PHP] Warum wird hier INSERT doppelt ausgeführt?

  Alt 31. Mär 2007, 10:25
Auf PHP-Seite kann ich mir das Problem auch nicht erklären. Ich hatte mal einen ähnlichen Fall, da lag es aber daran, dass durch eine Weiterleitung die Datei zweimal aufgerufen wurde (genauer gesagt durch einen falsch gesetzten ErrorDocument-Befehl in der .htaccess). Kannst du sowas bei dir ausschließen?

Allgemein solltest du aber ein bisschen auf deinen Codestil achten:
Code:
if ($_GET[action] == 'show')
Hier solltest du das verwenden:
Code:
if ($_GET['action'] == 'show')
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#3

Re: [PHP] Warum wird hier INSERT doppelt ausgeführt?

  Alt 31. Mär 2007, 13:30
Da ich den Fehler nicht finden konnte, habe ich die SQL-Anweisungen ausgelagert und verweise mit

header ("Location: index.php?view=network&action=show"); wieder zurück auf die Liste - dann geht es...

Gruß Igotcha
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#4

Re: [PHP] Warum wird hier INSERT doppelt ausgeführt?

  Alt 31. Mär 2007, 18:49
tip: trenn mal code von design.

http://www.phpug-hannover.de/download/dreamteam.pdf
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:04 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