[MySQL 4.0] Datensatz löschen

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

  • [MySQL 4.0] Datensatz löschen

    Hallo hab einen Fehle in meiner SQL Sytnax und kann diesen nicht finden,
    hier das Codefragment
    PHP-Code:
        if(isset($del_spieler)) {
        
    $sql "DELETE from spieler WHERE id=$del_spieler";
        if (@
    mysql_query($sql)) 
    Fehlermeldung:

    Fehler beim löschen: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

    hier zeige ich dann den link an:
    PHP-Code:

    <td class = 'tab1'>" . "<a href='$PHP_SELF?del_spieler=$del_spieler'>" . "Spieler löschen" .  "</td>
    hier ein test link:
    http://www.svschwabelweis.de/test.php

  • #2
    Re: [MySQL 4.0] Datensatz löschen

    Kontrollausgabe Query?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      wie meinst du dass jetzt?

      Kommentar


      • #4
        und kann diesen nicht finden
        wie willst du auch einen fehler finden, wenn du @ vor mysql_query() schreibst, um fehler zu unterdrücken und nicht einmal mysql_error() einsetzt`?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Fehler beim löschen: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
          das erste " wirds wohl nicht sein, also ist es wohl das letzte ". und was sagt uns das? der fehler liegt unmittelbar davor, also schauen wir mal nach.
          id=$del_spieler
          was sagt das sql-handbuch zu wertzuweisungen? richtig wäre
          id='$del_spieler'
          ich geh zum lachen in den keller

          Kommentar


          • #6
            so hab ichs komplett geschrieben um auch eine fehlüberrüfung zu bekommen
            PHP-Code:
            if(isset($del_spieler)) {
                
            $del "DELETE from spieler WHERE id=$del_spieler";
                if (@
            mysql_query($del)) {
                    echo(
            "<p>Der Spieler wurde gelöscht.</p>");
                } else {
                    echo(
            "<p>Fehler beim löschen: " mysql_error() . "</p>");
                }

            Kommentar


            • #7
              ok super aber gelöscht wird deswegen immer noch nichts!

              Kommentar


              • #8
                dann mach mal bitte ein echo für $del_spieler und gucke, ob die übergebene id richtig ist und in der datenbank überhaupt existiert.

                hilfreich wäre übrigens immer nen fehlercode mit anzugeben, gerade wenn du schon mysql_error() benutzt. hilft uns, dir zu helfen.
                ich geh zum lachen in den keller

                Kommentar


                • #9
                  Richtig wäre id='$del_spieler'
                  Nicht unbedingt. id=$del_spieler ist dann richtig wenn es ein Integer ist, was ich mal annehme. Sonst wird nämlich kein Index benutzt und macht Query langsam!

                  1. Vermute, $del_spieler ist leer. Deswegen geht die Query schief.
                  2a. Testen ob $del_spieler überhaupt einen Wert hat, also
                  PHP-Code:
                  if ($del_spieler
                  2b. Oder die Query so umschreiben, dass sie auch dann nicht fehlschlägt
                  PHP-Code:
                  WHERE id 0".$del_spieler." 
                  Dann wird der Datensatz mit der ID=0 gelöscht, den es normalerweise nicht gibt (bei autoincrement)
                  Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

                  Kommentar


                  • #10
                    OffTopic:
                    @thommyk
                    Nicht unbedingt. id=$del_spieler ist dann richtig wenn es ein Integer ist, was ich mal annehme.
                    tja und scheinbar liegst du falsch, denn dann hätte er wohl nicht
                    ok super
                    geschrieben, denn ich glaube nicht, dass sich das problem durch "mysql_error" gelöst hat.
                    2a. Testen ob $del_spieler überhaupt einen Wert hat, also ....
                    $del_spieler wird er sich doch hoffentlich vorher aus der db holen und nicht eingeben lassen. damit sollte der wert vorbelegt sein, damit fällt vorschlag 2b weg, 2a und 1. erledigen sich mit einem simplen echo. das einzigste was mir dein posting bringt ist (neben nachgequatsche ne gute halbe stunde später), das eine indexsuche mit integer schneller geht, als mit char. wow, da haben wir jetzt aber was gelernt und vorallem ist
                    macht Query langsam!
                    so aussagekräftig.


                    ich geh zum lachen in den keller

                    Kommentar


                    • #11
                      @KamiKatze: Was hattest du denn heute morgen im Futter?
                      thommyks Hinweise bzgl. der Übergabe der ID waren gut und berechtigt.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        ich hasse es, wenn leute inhaltlich das selbe einfach nur anders wiederholen und dann auch noch ne halbe stunde später. ich habe doch nicht aus langerweile gesagt er soll mal ein echo davor schreiben. doch dann hätte er es selber gesehen und mal drüber nachgedacht, warum die query nicht funktioniert. außerdem übergibt er die id sicherlich irgendwo und da wird der fehler liegen. du schreibst doch auch nicht drei vermutungen, die nicht mal zutreffen müssen, sondern stuppst die leute auf das was falsch ist.


                        Was hattest du denn heute morgen im Futter?
                        kitekat, aber nur in soße, nicht in gelee. das wirds sein.
                        Zuletzt geändert von KamiKatze; 21.11.2005, 14:33.
                        ich geh zum lachen in den keller

                        Kommentar


                        • #13
                          ist doch logisch warum nicht gelöscht wird.
                          die variable $del_spieler ist nicht zugewiesen.

                          Seht selber!

                          OffTopic:
                          hab mir den thread noch nicht richtig durchgelesen! lediglich das problem
                          Beziehung? Klar habe ich mit Beziehungen zu tun ... ich bin Datenbankprogrammierer :-D

                          Kommentar


                          • #14
                            OffTopic:
                            @wahsaga
                            hab mir den thread noch nicht richtig durchgelesen!
                            ist doch toll so etwas, oder? ich geh jetzt in den keller.
                            ich geh zum lachen in den keller

                            Kommentar


                            • #15
                              Was ich ja mal gerne von nate10 wüßte ist, ob er jetzt den Fehler gefunden hat oder nicht.
                              Auch wenn für KamiKatze der Informationsgehalt meines Posting wieder gleich Null ist.
                              Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

                              Kommentar

                              Lädt...
                              X