Wert wird nicht übergeben

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

  • Wert wird nicht übergeben

    Hi!. Bin mir nicht sicher ob das besser hierher oder nach SQL passt, daher bitte ich gleich vorweg diesen Fehler zu entschuldigen:

    Folgendes Problem: Ich habe mir eine kleine Webseite gemacht, bei der ich meine Videosammlung verwalte. Die hat ja gut funktioniert. Allerdings habe ich mir jetzt noch etwas dazugebastelt, damit ich eine IMDB Link eingeben und kann, und mir das dann klickbar angezeigt wird, bei dem ich zur Filminfo der IMDB komme.
    Allerdings habe ich das Problem, dass egal was ich ihn diesem Feld eingebe, der Wert nicht in die Datenbank geschrieben wird.
    Ich poste mal die zwei Funktionen, vl könnt ihr mir helfen, was ich das übersehe.

    PHP-Code:
    function filmaendern($film)
    { global 
    $username;
      global 
    $sid;
      
    anfang(); 
      
    $dbase=mysql_connect("localhost","user","pwd");
      if (!
    $dbase) { die ("Verbindung zur DB fehlgeschlagen"); }  
      
    mysql_select_db("ay001vma_video",$dbase);
      
    $abfrage="SELECT * FROM filme WHERE ID='$film'";
      
    $result=mysql_query($abfrage);
      
    $eintrag=mysql_fetch_array($result);
      
    $filmtitel=$eintrag["titel"];
      
    $filmid=$eintrag["ID"];
      
    $imdb2=$eintrag["imdb"];
      
    mysql_close($dbase);
      echo 
    "<br>\n";
      echo 
    "<form action=\"moviedb.php?sid=$sid\" method=\"post\"\n>";
      echo 
    "<table align=\"center\" bgcolor=\"#CCFF33\" width=\"100%\"\n>";
      echo 
    "<tr>\n";
      echo 
    "<td bgcolor=\"#CCFF33\" align=\"center\"><b>Film ändern</b></td>\n";
      echo 
    "</tr>\n";
      echo 
    "</table>\n";
      echo 
    "<br><br>\n";
      echo 
    "<table width=\"40%\" align=\"center\" bgcolor=\"#e4e4e4\">\n";
      echo 
    "<tr>\n";
      echo 
    "<td colspan=\"2\"><b>Filminfo:</b></td>\n";
      echo 
    "<td><b>Datenträger:</b></td></tr>\n";
      
      echo 
    "<tr>\n";
      echo 
    "<td>Titel:</td>\n";
      echo 
    "<td><input size=\"40\" type=\"text\" name=\"film\" value=\"$filmtitel\"></td>\n";
      
      echo 
    "<td><select size\"1\" name=\"typ\"><option value=\"0\">Bitte angeben</option>";
      echo 
    "<option value=\"1\">DVD</option>";
      echo 
    "<option value=\"2\">VCD</option>";
      echo 
    "<option value=\"3\">S-VCD</option>";
      echo 
    "<option value=\"4\">VHS</option>";
      echo 
    "<option value=\"5\">DivX</option>";
      echo 
    "<option value=\"6\">andere</option>";
      echo 
    "</select>\n";
      echo 
    "</td>\n";
      echo 
    "</tr>\n";
      
      echo 
    "<tr>\n";
      echo 
    "<td>IMDB:</td>\n";
      echo 
    "<td><input size=\"40\" type=\"text\" name=\"imdbneu\" value=\"$imdb2\"></td>\n";
      echo 
    "</td>\n";
      echo 
    "</tr>\n";
      
      echo 
    "<tr>\n";
      echo 
    "<td></td>\n";
      echo 
    "<td>\n";
      echo 
    "<input type=\"checkbox\" name=\"freigabe\" value=\"1\" checked>\n";
      echo 
    "Film für andere Mitglieder sichtbar\n";
      echo 
    "</td></tr>\n";
      echo 
    "<tr>\n";
      echo 
    "<td></td>\n";
      echo 
    "<input type=\"hidden\" name=\"nav\" value=\"filmaenderung\">"
      echo 
    "<input type=\"hidden\" name=\"filmid\" value=\"$filmid\">";
      echo 
    "<td><input type=\"submit\" value=\"Ändern\"></td>\n";
      echo 
    "</tr>\n";
      echo 
    "</table>\n";

    Und hier wird das in die Datenbank eingetragen:

    PHP-Code:
    function filmaenderung($film$filmid$typ$freigabe$imdbneu)
    { global 
    $sid;
      global 
    $username;
      
    anfang();
      
    $dbase=mysql_connect("localhost","user","pwd");
      if (!
    $dbase) { die ("Verbindung zur DB fehlgeschlagen"); }  
      
    mysql_select_db("ay001vma_video",$dbase); 
      
    $aendern="UPDATE filme Set titel='$film', art='$typ', freigabe='$freigabe', 
    imdb='
    $imdbneu'  WHERE ID='$filmid'";
      
    mysql_query($aendern,$dbase);
      
    mysql_close($dbase);
      echo 
    "<br>\n";
      echo 
    "<center>\n";
      echo 
    "$username:, '$film' wurde erfolgreich geändert";
      echo 
    "<br><br>\n";
      echo 
    "<a href=\"moviedb.php?sid=$sid&nav=anfang\">[Zur Hauptauswahl]</a>\n";
      echo 
    "<br>\n";
      echo 
    "<a href=\"moviedb.php?sid=$sid&nav=anzeigen\">[Filme anzeigen]</a>\n";
      echo 
    "</center>\n";

    Alles bis auf den IMDB-Wert wird eingetragen.
    EDIT:
    PHP-Tags sponsored by asp2php. Bitte zukünftig selbst dafür sorgen
    Zuletzt geändert von asp2php; 11.10.2004, 09:44.

  • #2
    Re: Wert wird nicht übergeben

    Original geschrieben von ayin
    Alles bis auf den IMDB-Wert wird eingetragen.
    was heißt denn das genau?
    - es wird ein Leerstring eingetragen?
    - der alte Eintrag bleibt?
    was sagt mysql_error()?

    Kommentar


    • #3
      Genau heisst das, dass von den drei variablen:

      $filmtitel=$eintrag["titel"];
      $filmid=$eintrag["ID"];
      $imdb2=$eintrag["imdb"];

      filmtitel und filmid korrekt übergeben werden, imdb2 aber nicht in die datenbank geschrieben wird. Ein alter Eintrag wird zwar korrekt ausgelesen, aber wenn ich den eintrag ändern will, wird er nicht zurückgeschrieben.

      wie finde ich raus, was mysql_error sagt?

      Kommentar


      • #4
        wird er nicht zurückgeschrieben.
        und ich hatte gefragt:
        - es wird ein Leerstring eingetragen?
        - der alte Eintrag bleibt?
        wie finde ich raus, was mysql_error sagt?
        z.B. echo mysql_error(); unmittelbar nach mysql_query absetzen.

        Kommentar


        • #5
          Scheinbar wird der alte Wert überschrieben und mysql_error liefert mir:

          Warning: Missing argument 5 for filmaenderung() in moviedb.php on line 372

          das wäre folgende zeile:

          function filmaenderung($film, $filmid, $typ, $freigabe, $imdbneu)

          Allerdings wurde dies ja oben definiert und übergeben in der function filmaendern in der zeile:

          echo "<td><input size=\"40\" type=\"text\" name=\"imdbneu\" value=\"$imdb2\"></td>\n";

          Kommentar


          • #6
            1. scheinbar ... hm ... was soll das? ein Programm/-teil kann nur ein von 2 möglichen Zustände annehmen:
            - ausgeführt
            - nicht ausgeführt
            scheinbar ... was ist das?

            2. bist du sicher, dass die Meldung von mysql_error kommt? Ist mir neu!

            Kommentar


            • #7
              Also ich nehme an, dass ein Leerstring eingefügt wird, zumal der alte Eintrag überschrieben wird.

              Ich habe echo mysql_error(); eingefügt, da wird mir aber nichts eingefügt, allerdings sah ich dann zum ersten Mal diese Fehlermeldung.

              Kommentar


              • #8
                wieso nimmst du an? Hast du überprüft oder nicht? Wenn ja, warum diese Annahme?

                Wenn Leerstring eingefügt wurde, dann weißt du ja, wo du suchen mußt

                Kommentar


                • #9
                  Naja, ich hab das herausgefunden, indem ich mit phpmyadmin die sql-tabelle betrachtet haben, und der alte eintrag, den ich auch via phpmyadmin erstellt habe, nicht mehr da war.

                  Aber mir fehlt der hinweis auf die übergebene variable, die ich ja ordentlich definiert habe. Ich habe einfach mittels paste and copy ein bereits vorhandenes inputfeld nochmals darunter hinkopiert, den namen der zu übergebenden variable geändert, aber diese geht scheinbar irgendwo verloren und ich sehe den wald vor lauter bäumen nicht mehr.

                  Kommentar


                  • #10
                    Original geschrieben von ayin
                    Warning: Missing argument 5 for filmaenderung() in moviedb.php on line 372

                    das wäre folgende zeile:

                    function filmaenderung($film, $filmid, $typ, $freigabe, $imdbneu)
                    was ergibt eine kontrollausgabe wie
                    PHP-Code:
                    echo '#'.$imdbneu.'#'
                    direkt vor dieser zeile?


                    und hast du dein error reporting mal "scharf" gestellt?
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar

                    Lädt...
                    X