Problem mit dem Einfügen/Löschen von Datensätzen per PHP

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

  • Problem mit dem Einfügen/Löschen von Datensätzen per PHP

    Hallo!
    Ich hab jetzt ungefähr einen halben Tag lang nach Fehlern gesucht aber finde ihn nicht ...
    Mein Problem ist, dass ich jedesmal, wenn ich auf Absenden bzw. Löschen klicke, die Fehlermeldung bekomme. Keine Ahnung warum.
    Hoffe jemand von euch durchschaut dass und kann mir helfen... bitte, bitte, bitte...
    Also der Code sieht so aus:
    PHP-Code:
    <head>

    </
    head>
    <
    script language="php">

    if(
    $senden)
    {
    $conn=mysql_connect($host,$username,$password);
    $abfrage2"insert tw03i022Buecher (B_ID, Titel, A_ID) values ('$B_ID', '$Titel', '$A_ID')";
    mysql_db_query("holweg0"$abfrage2);
    $num2=mysql_affected_rows();
    if (
    $num2>0)
    echo 
    "1 Datensatz hinzugefügt! <p>";
    else
    echo 
    "Es ist ein Fehler aufgetreten <p>";
    mysql_close($conn);
    }
    else
    echo 
    "Bitte geben Sie hier die Daten ein!<p>";

    if (
    $loeschen)
    {
    $conn=mysql_connect($host,$username,$password);
    $abfrage3"Delete * from tw03i022Buecher where B_ID = '$B_ID')";
    mysql_db_query("holweg0"$abfrage3);
    $num3=mysql_affected_rows();
       if (
    $num3>0)
          echo 
    "Der Datensatz wurde gelöscht<p>";
       else
          echo 
    "Der Datensatz wurde nicht gelöscht<p>";
    mysql_close($conn);
    }

    </
    script>
    <
    body>

    <
    form action="Buch.php" method="post">

    <
    input name="B_ID">    Buch-ID <p>
    <
    input name="Titel">  Titel <p>
    <
    input name="A_ID">  Autoren-ID <p>
    <
    input type="submit" name="senden" value="Absenden">
    <
    input type="reset" >
    <
    input type="submit" name="loeschen" value="Datensatz löschen">

    </
    form>
    </
    body>
    </
    html
    DANKE!
    Zuletzt geändert von Nina21; 21.01.2005, 14:22.

  • #2
    im unformatierten code kann keiner was "durchschauen".
    von welchem fehler ist die rede?

    EDIT:
    haxe - hast du so eine taste auf deiner tastatur, zum eingeben von diesem link?
    Zuletzt geändert von penizillin; 21.01.2005, 14:18.

    Kommentar


    • #3
      lesen!
      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


      • #4
        Also ich habe Felder, in die man einen neuen Datensatz eingeben kann bzw. einen alten Datensatz per ID-Nummer rauslöscht.
        Aber immer wenn ich auf 'Absenden' bzw. auf 'Datensatz löschen' klicke, dann erscheint die Fehlermeldung (nicht gelöscht, bzw nicht ausgeführt), also er geht schon in die Schleife [if ($senden) bzw. if($löschen)] rein, aber irgendwo haperts.
        Die Verbindung zur Datenbank steht aber auf jeden Fall - lasse mir nämlich vorher alle Daten ausgeben (ist nur nicht im Code dabei) und an den SQL-Befehlen kanns auch nicht liegen...

        Oh, danke, Abraxax, hoffe das passt jetzt so. Bekomme übrigens keine Fehlermeldungen, die besagen, dass irgendwas mit dem Code nicht passt.
        Zuletzt geändert von Nina21; 21.01.2005, 14:24.

        Kommentar


        • #5
          wo ist dein mysql_error?

          EDIT:
          und was ist "DELETE *"? was gibt's denn noch für DELETE?
          Zuletzt geändert von penizillin; 21.01.2005, 14:29.

          Kommentar


          • #6
            Den hat mir das Galileo openbook verschwiegen... reicht dass, wenn ich einmal am Ende des Codes ein echo "Fehler: " . mysql_error(); einfüge?
            Mit dem DELETE * sage ich ihm, dass er den ganzen Datensatz rauslöschen soll, bei dem die eingegebene ID übereinstimmt.
            Zuletzt geändert von Nina21; 21.01.2005, 14:33.

            Kommentar


            • #7
              dein Buch mal dir die Funktion verschwiegen haben. nicht aber http://www.php-resource.de/forum/sho...threadid=47906

              kannt ganz am ende einfügen. dann musst du aber von unten nach oben debuggen. also lieber nach jeder abfrage einbauen.

              Wegen Delete guck doch bitte mal in SQL-Manual.

              Kommentar


              • #8
                Nein, auch mit dem mysql_error spuckt er mir keinen Fehler aus. Am Delete kanns auch nicht liegen, dass hab ich direkt über die Datenbank überprüft, dass passt sicher...

                Kommentar


                • #9
                  OffTopic:
                  Original geschrieben von penizillin
                  haxe - hast du so eine taste auf deiner tastatur, zum eingeben von diesem link?
                  nö. wäre aber mal ne maßnahme...
                  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


                  • #10
                    Original geschrieben von Nina21
                    Am Delete kanns auch nicht liegen, ...
                    IMHO doch, nimm den * daraus

                    Kommentar


                    • #11
                      Oh, recht gehabt - tut mir leid, der delete war auch nicht richtig. Hab ihn jetzt ein bisschen umgemodelt
                      PHP-Code:
                      $abfrage3=mysql_db_query("holweg0""DELETE FROM tw03i022Buecher WHERE B_ID = '$B_ID' LIMIT 1)"); 
                      trotzdem will er weder irgendwas einfügen noch rauslöschen...

                      Kommentar


                      • #12
                        kontrollausgabe query-string, ob eingesetzte variable auch den erwarteten wert liefert ...?
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          versuch's mal doch mit
                          PHP-Code:
                          or die(mysql_error()); 
                          nach JEDER abfrage.

                          teste die sql-query, lass sie dir mit die() ausgeben, damit du weißt, ob sie richtig zusammengesetzt wurde. teste sie anschließend manuell (z.b. in phpmyadmin).

                          bei dir sind register_globals auf on, wenn ich das richtig sehe - verzichte darauf, arbeite mit den superglobals.

                          Kommentar


                          • #14
                            Dankeschön, ihr ward wirklich meine Rettung. Schlussendlich hatte ich folgendes Problem: ich hab die Daten vorher schon alle in einer Tabelle anzeigen lassen, und dann die gleichen Feldnamen für die Insert/delete-Abfragen verwendet... außerdem war da dieser Ausrutscher mit Delete und eine Klammer zuviel (falls das überhaupt wem interessiert).
                            Auf jeden Fall aber: DANKE! DANKE! DANKE!

                            Kommentar

                            Lädt...
                            X