Datensatz löschen. PER link

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

  • Datensatz löschen. PER link

    Hi, ich bin neuling und habe folgendes Problem:

    Ich möchte einen bestimmten Datensatz anhand des Datums löschen. Jeder Datensatz erhält das aktuelle Datum und Uhrzeit wenn er in die Datenbank geschrieben wird. Mir wird aber jedesmal beim Delete der Name der Tabelle als unexpected String gemeldet. Vermutlich bin ich einfach zu blöd. Hier mal der Code:

    PHP-Code:
    $verbindung mysql_connect('meinedatenbank...');
    mysql_select_db('datenbankname'$verbindung);

    mysql_query("DELETE FROM tabelle WHERE 'eindatum' = $_GET[$eindatum]"); 
    Wie Ihr seht rufe ich die loeschen.php von einer anderen Seite auf und übergebe das Datum. (Steht auch in der Übergabe). Jetzt bekomme ich immer:

    syntax error, unexpected 'wishbox' (T_STRING) in ..\htdocs\erstertest\loeschen.php on line 9

    Ich habe mit und ohne Anführungszeichen versucht. Wie gesagt Neuling und Holzkopf... Kann jemand bitte in die richtige Richtung schubsen. Und: Nein, die Dokumentationen im Netz helfen mir irgendwie nicht. Demnach müsste doch die Syntax richtig sein... Verstehs nicht...

  • #2
    Zitat von Gobo2002 Beitrag anzeigen
    syntax error, unexpected 'wishbox' (T_STRING) in ..\htdocs\erstertest\loeschen.php on line 9
    Das ist ein PHP-Fehler, und 'wishbox' kommt im Code gar nicht vor.

    (Außerdem sollte man zum Löschen nicht GET verwenden, sondern POST.)
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Zitat von wahsaga Beitrag anzeigen
      Das ist ein PHP-Fehler, und 'wishbox' kommt im Code gar nicht vor.

      (Außerdem sollte man zum Löschen nicht GET verwenden, sondern POST.)
      Ja, im Beispieltext habe ich wishbox durch tabelle ersetzt. wishbox ist der Name der Tabelle.

      Kommentar


      • #4
        Zitat von Gobo2002 Beitrag anzeigen
        . . .
        PHP-Code:
        $verbindung mysql_connect('meinedatenbank...');
        mysql_select_db('datenbankname'$verbindung);
         
        mysql_query("DELETE FROM tabelle WHERE 'eindatum' = $_GET[$eindatum]"); 
        Wie Ihr seht rufe ich die loeschen.php von einer anderen Seite auf und übergebe das Datum. (Steht auch in der Übergabe). Jetzt bekomme ich immer:
        syntax error, unexpected 'wishbox' (T_STRING) in ..\htdocs\erstertest\loeschen.php on line 9
        . . .
        Hi Gobo,

        Spaltennamen gehören nicht in Anführungszeichen.

        Dem eindatum im $_GET-Array darf kein Dollarzeichen vorangestellt werden, sondern wird in Anführungszeichen eingeschlossen.

        PHP-Code:
        mysql_query("delete from tabelle where eindatum=".$_GET['eindatum']); 
        Gruß
        Günni

        Kommentar


        • #5
          Hmmm.... Aus irgendeinem Grund zeigt er mir ein anderes Datum... Ok, hab also eine andere Spalte genommen. Werte passen jetzt über ein, und Danke Günni, nach Deinem Hinweis sind nun die Fehlermeldungen weg... Aber: Die Daten werden dennoch nicht gelöscht...

          Kommentar


          • #6
            Verstehe es nicht. Code sieht jetzt so aus:

            PHP-Code:
            $verbindung mysql_connect('....''.....''....');
            mysql_select_db('....'$verbindung);



            mysql_query("DELETE FROM wishbox WHERE eindatum = ".$_GET['eindatum']." LIMIT 1") or die ("mysql-error: ".mysql_error()); 
            Bekomme jetzt auch ohne 'die' keine Fehlermeldung mehr, aber der Datensatz wird auch nicht gelöscht. Feld, Inhalt, passt alles. In der Datenbank steht: 2013-11-08 09:59:35 in der Datumspalte. Dieser Wert wird auch korrekt an den Löschbefehl mittels $_GET übergeben.... Warum löscht der den Datensatz nicht???

            Kommentar


            • #7
              Zitat von Gobo2002 Beitrag anzeigen
              Bekomme jetzt auch ohne 'die' keine Fehlermeldung mehr
              Soll heissen, du hast die Ausgabe eines eventuellen Fehlers einfach entfernt – „aus den Augen, aus dem Sinn” …?

              Warum löscht der den Datensatz nicht???
              Weil deine Query syntaktisch fehlerhaft ist.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Habe den Fehler niche infach entfernt, er wird nicht mehr ausgegeben. Was ist denn da falsch, kannst Du mir das auch verraten?

                Kommentar


                • #9
                  MySQL :: MySQL 5.5 Reference Manual :: 9.1.3 Date and Time Literals
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Sorry, verstehe ich nicht. Das Datum wird doch im ricchtigen Format übergeben...

                    Kommentar


                    • #11
                      Zitat von Gobo2002 Beitrag anzeigen
                      Sorry, verstehe ich nicht. Das Datum wird doch im ricchtigen Format übergeben...
                      Lass dir mal das Statement anzeigen.
                      Lasse dir die MySQL Fehlermeldung zeigen
                      Wir werden alle sterben

                      Kommentar


                      • #12
                        Hi Gobo,

                        hast du keine eindeutige ID/Datensatz in deiner Tabelle? Das wäre weitaus einfacher, als sich mit Datums-/Zeitformaten "rumzuquälen".

                        Link zum Löschen:
                        PHP-Code:
                        <a href="script.php?id=2">08.11.2013</a
                        PHP-Code:
                        mysql_query("DELETE FROM wishbox WHERE id = ".$_GET['id']); 
                        Gruß
                        Günni

                        Kommentar


                        • #13
                          Ehmm... Löschen per Link ist Blödsinn. Warum wird das hier überhaupt diskutiert?

                          Mal davon abgesehen, dass du eine wunderbare Sicherheitslücke baust, weil du komplett auf das SQL-Escaping vergisst.

                          Kommentar


                          • #14
                            Zitat von h3ll Beitrag anzeigen
                            Ehmm... Löschen per Link ist Blödsinn. Warum wird das hier überhaupt diskutiert?

                            Mal davon abgesehen, dass du eine wunderbare Sicherheitslücke baust, weil du komplett auf das SQL-Escaping vergisst.
                            Das sind Datensätze die nur kurz stehen bleiben. Ganz ehrlich? Sch... auf die Sicherheitslücke. Ist eh nix besinderess drin, Das löschen per Link ist einfacher weil andere das ebenso können sollen.

                            Danke Günni. Lege ne ID an..

                            Kommentar


                            • #15
                              Zitat von h3ll Beitrag anzeigen
                              Ehmm... Löschen per Link ist Blödsinn. Warum wird das hier überhaupt diskutiert?
                              Mal davon abgesehen, dass du eine wunderbare Sicherheitslücke baust, weil du komplett auf das SQL-Escaping vergisst.
                              Warum ist Löschen per Link Blödsinn? In fast jedem Forum, bei phpMyAdmin etc. wird Löschen per Link angeboten.
                              Ehmm... und die machen also alle Blödsinn?

                              Gruß
                              Günni

                              Kommentar

                              Lädt...
                              X