![]() |
[PHP] Warum wird hier INSERT doppelt ausgeführt?
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:
Gruß Igotcha
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>"; } |
Re: [PHP] Warum wird hier INSERT doppelt ausgeführt?
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:
Hier solltest du das verwenden:
if ($_GET[action] == 'show')
Code:
if ($_GET['action'] == 'show')
|
Re: [PHP] Warum wird hier INSERT doppelt ausgeführt?
Da ich den Fehler nicht finden konnte, habe ich die SQL-Anweisungen ausgelagert und verweise mit
Delphi-Quellcode:
wieder zurück auf die Liste - dann geht es...
header ("Location: index.php?view=network&action=show");
Gruß Igotcha |
Re: [PHP] Warum wird hier INSERT doppelt ausgeführt?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz