[PHP]News Beiträge wieder löschen

Psycho-Clown

Cadet 4th Year
Registriert
Dez. 2001
Beiträge
88
Hi!
Also ich habe mal angefangen mit meinen Bescheidenen PHP Kenntnissen nen News Skript für meine Clanseite zu coden. Ok also das anzeigen der News aus der Datenbank klappt. Das einfügen neuer Datensätze geht auch über meine Webseite.
Allerdings das löschen funktioniert nicht über das HTML Formular. Ich habe das im Prinzip genauso gemacht wie das einfügen:

Hier gebe ich die Id der News an, die ich löschen will:
-------------------------------------------------------------------------------
<form name="form2" method="post" action="intern.php">
Delete News Nr: <input name="delete" type="text" id="delete">
<input type="submit" name="Submit1" value="Abschicken">
</form>
-------------------------------------------------------------------------------

okay, also wird die ID der News in das textfeld "delete" eingegeben und Abgeschickt.
Dann der PHP Code:

PHP:
if ($Submit1 != null) {
    $sql_delete = "DELETE FROM 'news' WHERE 'id' = '$delete' LIMIT 1";
    mysql_query($sql_delete, $dbconnect); 
    header("Location:intern.php");
}


Also wenn der Submit1 Button nen Wert zurückliefert wird halt der Befehl ausgeführt, dass der Datensatz mit der eingebenen id gelöscht wird.
Komischerweise passiert dann nix. Hab ich da was übersehen? Der DB User hat natürlich "delete" Rechte.
Wie gesagt das Einfügen der Datensätze hab ich ähnlich gemacht, nur halt anstatt den Delete befehl insert geschrieben (und halt form angepasst).
Naja ich hoffe ihr versteht das problem
schonmal Danke im Voraus
 
Zuletzt bearbeitet:
gib mal echo $sql_delete; aus, ob da alles stimmt bzw. ob $Submit1 überhaupt ungleich null ist
 
hab echo "<h1>$sql_delete</h1><br>$delete<br>$Submit1<br>";

und raus kam:
DELETE FROM 'news' WHERE 'id' = '5' LIMIT 1;

5
Abschicken


sollte richtig sein oder?
 
Zuletzt bearbeitet:
für $sql_delete verwende mal eine andere Bezeichnung, zB $loeschen ...
 
haste registerglobals an oder aus ?
 
PHP:
<?php
if ($Submit1 != null) {

    $sql_delete = "DELETE FROM news WHERE id = '".$delete."' LIMIT 1";

    mysql_query($sql_delete, $dbconnect); 

    header("Location:intern.php");

}
?>

das sollte eher klappen
 
Original erstellt von Kessel
PHP:
<?php
if ($Submit1 != null) {

    $sql_delete = "DELETE FROM news WHERE id = '".$delete."' LIMIT 1";

    mysql_query($sql_delete, $dbconnect); 

    header("Location:intern.php");

}
?>

Tachchen,

wenn du in der mysql_query-Zeile noch folgendes anhaengst, werden dir Fehler ausgegeben, die deine SQL-Anfrage betreffen:

PHP:
or die ("Ung&uuml;ltige Abfrage: " . mysql_error());

also gesamt:

PHP:
mysql_query($sql_delete, $dbconnect) or die ("Ung&uuml;ltige Abfrage: " . mysql_error());

Toengel@Alex
 
Tabellen- und Feldnamen darfst du nicht in Anführungsstriche setzen (Wie in Kessels Beispiel).

was du machen darfst und ab und zu auch machen musst ist, die Feld- bzw. Tabellennamen in Backticks ( `) zu setzen.

Ergibt dann `news`oder `id`.

Das brauchst du aber nur bei Reservierten Worten oder mehreren Wörtern als Tabellen / Feldbezeichner.

Und sowas sollte man sowieso vermeiden.

Ansonsten ist aber das Debugging mit angehängtem
Code:
or die(mysql_error());
wohl die beste Lösung, damit du in Zukunft solche Probleme einfach alleine lösen kannst.
 
Original erstellt von Loopo
daran liegt's offensichtlich nicht ;)

he, ist meine standardfrage wenns php probs gibt :D

zu 90% liegts daran (zumindest wenn mich da jemand was dazu fragt), und fehlerquellen sollte man von vorneherein ausschliessen ;)
 

Ähnliche Themen

Zurück
Oben