mysql_query("DELETE FROM…

S

steinmetz

Mitglied
Thread Starter
Dabei seit
14.11.2003
Beiträge
41
Reaktionspunkte
0
Guten Abend.

Ich lese jetzt schon einige Zeit mit und habe jetzt auch mal eine Frage:

Ich versuche eine Datenbank mit Webinterface zu erstellen, bin aber noch nicht so recht bewandert was mySQL und PHP betrifft und habe ein Problem wenn ich Datensäte mit

$result=mysql_query("DELETE FROM user WHERE nick='$nick");

löschen will.

Wenn ich es mit

$result=mysql_query("DELETE FROM user WHERE nick='musteruser'");

mache geht es...

Wenn ich mir dir Var $nick anzeigen lasse sehe ich auch den Benutzernamen, in der DB ist er auch an der richtigen Stelle...

Wenn da jemand helfen könnte wäre das fein...


steinmetz
 
Fehlt da ein _'_ in der ersten Query ?, oder gib die Query erst in eine Variable und dann diese an Mysql weiter.


$query="DELETE FROM user WHERE nick='$nick'";

$result=mysql_query($query);

Dadurch lässt sich mit einem echo $query jedenfalls die Abfrage selbst gut kontrollieren.
 
Hallo.

$query="DELETE FROM user WHERE nick='$nick'";
$result=mysql_query($query);

So
$anfrage="DELETE FROM user WHERE nick=$nick"
$result=mysql_query($anfrage);

war es auch schon, was aber nichts brachte...die Var $nick wird dann mit

print("$anfrage <br>");

richtig ausgegeben, aber an der DB ändert sich leider nichts...
 
Original geschrieben von steinmetz

$anfrage="DELETE FROM user WHERE nick=$nick"
$result=mysql_query($anfrage);
&nbsp;

Mir fehlen da die Hochkommata ' bei $nick -> '$nick' " ?
der Wert muss unbedingt in Hochkommata stehen(vielleicht hast du ja nur vergessen sie hier mitanzuschreiben ?)

Sonst ist ja alles wie es sein sollte :confused:

Probier einmal nach mysql_query() mittels mysql_error() ob eine Fehlermeldung vorliegt, sonst fällt mir leider nicht viel ein :confused:
 
Original geschrieben von mrwho
&nbsp;

Mir fehlen da die Hochkommata ' bei $nick -> '$nick' " ?
der Wert muss unbedingt in Hochkommata stehen(vielleicht hast du ja nur vergessen sie hier mitanzuschreiben ?)

Sonst ist ja alles wie es sein sollte :confused:

Probier einmal nach mysql_query() mittels mysql_error() ob eine Fehlermeldung vorliegt, sonst fällt mir leider nicht viel ein :confused:
&nbsp;

Guten Morgen zusammen,

was mir bei "unerklärlichen" Phänomenen immer bei der Fehlersuche hilft ist Folgendes:

1. Immer den Fehlerfall abfangen.

$sql = "delete from user where nick = '" . $nick . "'";
mysql_query($sql) or die("Fehler: " . mysql_error());

2. Wenn das nicht hilft mit "echo $sql" das Kommando ausgeben lassen und dieses dann mal in die SQL Adminoberfläche (phpMyAdmin) direkt eingeben.

Gruß vom

McGyver
 
Bzgl. Fehlermeldung ... steht auch in der FAQ! ;)

Zu Deinem Problem ... sofern Du die Variable $nick in Hochkommata gesetzt hast, sollte
es eigentlich funktionieren. Probier doch sonst mal folgendes:

PHP:
$result=mysql_query("DELETE FROM user WHERE nick='" . $nick . "'");


Macht jetzt grundsätzlich nicht so den Unterschied, aber ist eine weitere Möglichkeit.
Am besten ist aber wirklich, Du lässt Dir mal die Fehlermeldung ausgeben (Steht auch
in der FAQ) und postet diese dann mal, sofern Du Dir selber daraus keinen Reim machen
kannst.

Ich könnte mir vorstellen, dass vielleicht Leerzeichen vor und nach dem String auch ein
Grund sein könnten. Probier dazu mal, die Variable vorher mit "$nick = trim($nick)" zu
bearbeiten.
 
Zuletzt bearbeitet:
Probiers mal damit:

PHP:
$result=mysql_query('DELETE FROM user WHERE nick=[BACKSLASH]'' . $nick . '[BACKSLASH]'');


Die backslashes werden gefiltert in diesem Forum, deswegen hab ich den code so hingeschrieben.

Gruss...
 
Guten Morgen helfende Gemeinde.

Jetzt geht es, hatte es aber auch schon mal so(also den Wert in Hochkommata)...

Wer kann schon sagen was es war...vielleicht hatte ich ja vergessen zu speichern oder sonst was..
Eine Fehlermeldung hatte es nicht gegeben...Ich hatte mir nach der DELETE-Aktion immer die Daten anzeigen lassen:

$anfrage="DELETE FROM user WHERE nick='$nick'";
$result=mysql_query($anfrage);

$res=mysql_query("SELECT * FROM user");
while($row=mysql_fetch_array($res)){
echo "Nick: ".$row['nick']."<br>";
}


Mensch, wenn man Anfänger ist kann einen sowas ja regelrecht irre machen...

Danke für eure Hilfe.
 
Zurück
Oben Unten