mysql_query("DELETE FROM…

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von steinmetz, 02.06.2004.

  1. steinmetz

    steinmetz Thread Starter MacUser Mitglied

    Beiträge:
    41
    Zustimmungen:
    0
    MacUser seit:
    14.11.2003
    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
     
  2. mrwho

    mrwho MacUser Mitglied

    Beiträge:
    2.568
    Zustimmungen:
    76
    MacUser seit:
    20.07.2003
    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.
     
  3. steinmetz

    steinmetz Thread Starter MacUser Mitglied

    Beiträge:
    41
    Zustimmungen:
    0
    MacUser seit:
    14.11.2003
    Hallo.

    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...
     
  4. mrwho

    mrwho MacUser Mitglied

    Beiträge:
    2.568
    Zustimmungen:
    76
    MacUser seit:
    20.07.2003
    &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:
     
  5. ApfelRalf

    ApfelRalf MacUser Mitglied

    Beiträge:
    642
    Zustimmungen:
    22
    MacUser seit:
    14.01.2004
    &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
     
  6. Delmar

    Delmar MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    MacUser seit:
    28.09.2002
    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: 03.06.2004
  7. Jazz_Rabbit

    Jazz_Rabbit MacUser Mitglied

    Beiträge:
    1.137
    Zustimmungen:
    33
    MacUser seit:
    20.09.2002
    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...
     
  8. steinmetz

    steinmetz Thread Starter MacUser Mitglied

    Beiträge:
    41
    Zustimmungen:
    0
    MacUser seit:
    14.11.2003
    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.
     
Die Seite wird geladen...
Ähnliche Themen - mysql_query(DELETE FROM…
  1. sempai0815
    Antworten:
    34
    Aufrufe:
    1.602
    Atarimaster
    15.04.2009