Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler mit DELETE aber ich komm nich drauf

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fehler mit DELETE aber ich komm nich drauf

    Hallo
    So, zuerstmal der Code, vielleicht fällt es euch ja schon ins Auge
    PHP-Code:
               GettoDB();//Alles Bereit machen zum senden der Abfrage (funktioniert)
               
    $call="DELETE FROM guestbook ".
                          
    "WHERE ID_writer = ".$_GET['WID'].
                     
    " AND ID_gb  = ".$_GET['GID'].
                     
    " AND title = '".$_GET['TIT']."'".
                     
    " AND text = '".$_GET['TXT']."'";
                     
    //" AND WHERE 'date'='".$_GET['DAT']."'";
               
    echo $call.'<br>';
               
    $daten=mysql_query($call);
               echo 
    $daten;
               
    //header('location:Index.php?page=GB&ID='.$_POST['gb_id']); 
    Also: Mein Problem:
    Ich kriege die gewollte Zeile aus der Datenbank einfach nicht gelöscht.
    Was habe ich schon versucht:
    1.)Ich habe mir Zeilen über Select ausgeben lassen, um zu schauen, ob die Verbindung hergestellt wird. Habe nach und nach mehr Konditionen mit reingenommen und das funktioniert.
    2.)Ich habe verschiedene Konstalationen und Syntaxes für den Aufruf DELETE probiert, unter anderem auch das DELETE-Statement aus PHP-Myadmin kopiert und entsprechend mit PHP angepasst.
    3.)Habe mir den Call über Echo ausgeben lassen, um zu schaun, ob ich da einen Fehler drin habe. Und ich sag´s mal so: ICH seh da keinen

    So, meine Fragen:

    1.)Was ist da falsch dran?
    2.)Für die Zukunft: Was muss ich bei DELETE anders beachten als bei Select? Ist die Anzahl der Leerzeichen (ausserhalb von STrings) wichtig, Weint MySQL, wenn ich " statt ' benutze?
    3.) Wie ihr seht, ist die letzte Zeile ausgeblendet. date ist ein Timestamp, den ich mit einem zuvor mal ausgelesenen und mittels GET übergebenen Timestamp vergleichen will (auf Gleichheit). Passt PHP die Typen automatisch an?

    Achja, zur Abzufragenden DB:
    Beide IDs sind BIGINT
    date ist ein TIMESTAMP
    der Rest ist TEXT

    Danke für eure Antworten
    Mfg PureFranky


  • #2
    Hat Deine Tabelle guestbook ein primary-key/auto-increment Feld?

    Kommentar


    • #3
      Zitat von PureFranky Beitrag anzeigen

      1.)Was ist da falsch dran?
      so sehe ich da keinen fehler (außer sql injections)
      hast du error_reporting an?
      was sagt mysql_error?

      Zitat von PureFranky Beitrag anzeigen
      2.)Für die Zukunft: Was muss ich bei DELETE anders beachten als bei Select? Ist die Anzahl der Leerzeichen (ausserhalb von STrings) wichtig, Weint MySQL, wenn ich " statt ' benutze?
      mysql interessiert sich nicht für leerräume. die kannst du gestalten wie du willst. es ist auch egal welches anfürhrungszeichen du benutzt.

      Zitat von PureFranky Beitrag anzeigen
      3.) Wie ihr seht, ist die letzte Zeile ausgeblendet. date ist ein Timestamp, den ich mit einem zuvor mal ausgelesenen und mittels GET übergebenen Timestamp vergleichen will (auf Gleichheit). Passt PHP die Typen automatisch an?
      es kommt darauf an wie du vergleichst, ob typsicher oder nicht.

      alles was in $_GET steht ist ein string, enthählt dieser auschließlich numerische werte und wird mit einem integer verglichen, so wird php intern stillschweigend einen integer vergleich durchführen. enthält ein string allerdings nicht numerische zeichen, so hat dieser einen integer wert von 0.
      PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
      Suse 11.2 *vorfreude*

      Kommentar


      • #4
        Wenn Du Dir den Query-String ausgeben lässt und in PHP-MyAdmin rein kopierst, was kommt als Ausgabe?
        Hast Du andere Tabellen, die die IDs in der Tabelle als Fremdschlüssel referenzieren?
        **********************************
        Nein, ich bin nicht die Signatur.
        Ich putze hier nur.
        **********************************

        Kommentar

        Lädt...
        X