Löschvorgang erst nach Refresh

Daaguru

Erfahrenes Mitglied
Hi Tutorials.de Community,

nach dem ich über den entfernen Button die URL ala ?del=rezept1 verändere,
wird in einer IF-Anweisung eine Verbindung zur Datenbank aufgerufen und rezept1 gelöscht.

Die geschieht allerdings erst nach dem ich den Refresh-Button oder ein weiteres Rezept
(dh. nach dem die URL ein weiteres mal geändert wurde) gelöscht habe.

Wie kann ich das Rezept löschen schon in dem ich den Entfernen Button klicke?

PHP:
$del = $_REQUEST['del'];
		if (isset ($del))
		{
			$del_bestellung = "DELETE FROM `warenkorb` WHERE `rezept`='".$del."' AND `sessionid`='".$sid."'";
			$del_query		= MYSQL_QUERY($del_bestellung);	
		}
		

// Links und Ausgabe
 
PHP:
$url = $_REQUEST['del'];

if ($url == ""){
 	die ();
}else{
	$del_bestellung = "DELETE FROM `warenkorb` WHERE `rezept`='".$url."' AND  `sessionid`='".$sid."'";
            $del_query        = MYSQL_QUERY($del_bestellung);

}

Hallo,

ich denke das müsste gehen, aber ich würde für das $_REQUEST, $_GET nehmen. Wenn das Script nach der if Abfrage noch weiter laufen muss dann musst das das die(); einfach löschen

viele Grüsse... ;-)
 
Zuletzt bearbeitet:
Machs dir nicht so kompliziert - sofern vor der Ausgabe gelöscht wird, reicht folgender Code voll und ganz!

Code:
if (isset($_GET['del']) && $_GET['del'] != "") 
        { 
        mysql_query("DELETE FROM `warenkorb` WHERE `rezept` = '".$_GET['del']."' AND `sessionid`='".$_SESSION['sid']."'");     
        }
 
Ist $_GET['del'] numerisch? Wenn ja würde ich das bei den 'if' Bedingungen noch kontrollieren.

PHP:
is_numeric($_GET['del'])

Sollte $_GET['del'] nicht numerisch sein, bitte ein
PHP:
mysql_real_escape_string();
machen um so SQL Injections vorzugreifen.
 
Hallo!

Bist Du Dir sicher dass erst nach einem Refresh gelöscht wird (lässt sich z.b. mit phpMyAdmin ganz einfach überprüfen, ohne die Seite zu refreshen)?

Ich denke mal eher dass zwar der Eintrag korrekt gelöscht wird, die Anzeige der Daten auf der Seite aber nicht aktuallisiert wird.
Ich würde also überprüfen ob $del_query TRUE oder FALSE zurück gibt.
Wenn TRUE, dann per header() weiterleiten.
Wenn FALSE, dann optional eine Fehlermeldung ausgeben.

Gruss Dr Dau
 
Hi, danke für die zahlreichen Antworten!

Also ich hab nach dem Vorschlag von DrDau überprüft ob es auch in der Datenbank gelöscht wird und so ist es.

Der Eintrag wird in der DB gelöscht und nur auf der Seite noch nicht richtig dargestellt.
Ich werde jetzt die Möglichkeite mit dem Header( ) verfolgen, wobei ich schade finde das es nicht auch ohne den Header( ) funktioniert.

Melde mich sobald ich das geschafft habe :)
 
Alles klar!

Mit dem Header funktionierts in "Echt-Zeit" ;)
Klick und die Daten sind gelöscht und werden auch auf der Seite nicht angezeigt.


~daA|guRu~
 
Zurück