Probleme mit UPDATE

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit UPDATE

    Hallo zusammen

    Dieses Script habe ich aus dem Buch MySQL für Dummies kopiert und abgeändert.
    Dieser Script ändert jedoch den Datensatz nicht. Aber es erscheint auch keine Fehlermeldung.
    Wäre froh wenn mir jemand helfen könnte

    PHP Code:
    require("biblio2.inc");

    $film_in_anschaffung_ID$HTTP_GET_VARS["film_in_anschaffung_ID"];
    $film_name $HTTP_GET_VARS["film_name"];
    $film_genre $HTTP_GET_VARS["film_genre"];

    if (!isset(
    $set))
      {
      
    seitenAnfang("Filme verändern");
      echo 
    "<h1>$name ver&auml;ndern</h1>\n";
      echo 
    "<form action=\"$PHP_SELF\" method=\"post\">\n";
      echo 
    "<input type=\"hidden\" name=\"set\" value=\"true\">\n";
      echo 
    "<input type=\"hidden\" name=\"film_in_anschaffung_ID\" value=\"$f_id\">\n";
        echo 
    "<table border=\"0\">\n";

        echo 
    "<tr>\n";
        echo 
    "<td><b>Name:</b></td>\n";
        echo 
    "<td>\n";
        echo 
    "<input type=\"text\" name=\"name\" value=\"$film_name\" size=\"50\" maxlength=\"30\">\n";
        echo 
    "</td>\n";
        echo 
    "</tr>\n";

        echo 
    "<tr>\n";
        echo 
    "<td><b>Genre:</b></td>\n";
        echo 
    "<td>\n";
        echo 
    "<input type=\"text\" name=\"genre\" value=\"$film_genre\" size=\"50\" maxlength=\"50\">\n";
        echo 
    "</td>\n";
        echo 
    "</tr>\n";

        
        echo 
    "</table>\n";
        echo 
    "<p>\n";
        echo 
    "<input type=\"submit\" value=\"Daten abspeichern\">\n";
        echo 
    "<input type=\"reset\" value=\"Daten verwerfen\">\n";
      echo 
    "</form>\n";

      }  
    //!isset($set)
      
    else
      {
      include(
    "db_connect2.inc");
      
    seitenAnfang("Filme ver&auml;ndert");
      if(
    mysql_connect($host$user$pwd))
        {
        if(
    mysql_select_db($dbname))
          {
          
    $sql "UPDATE filme_in_anschaffung SET "
               
    "film_name =$name"
               
    "film_genre =$genre"
               
    "WHERE film_in_anschaffung_ID = '$f_id'" or die(mysql_error());

          if(
    mysql_query($sql) or die(mysql_error()))
            {
            echo 
    "<h1>&Auml;nderung erfolgreich</h1>\n";
            echo 
    "Die Filmdaten von <b> $name</b> wurde erfolgreich ge&auml;ndert.<p>";
            }
          else
            {
            echo 
    "Der Datensatz konnte leider nicht gespeichert werden. ";
            echo 
    "&Uuml;berpr&uuml;fen Sie Ihre Eingaben und versuchen es noch einmal.<p>\n";
            }
          } 
    //mysql_select_db()
        
    else
          echo 
    "<br><i>Verbindung zur Datenbank ist im Moment nicht m&ouml;glich!</i><br>\n";
        
    mysql_close();
        } 
    //mysql_connect()
      
    else
        echo 
    "<br><i>Der Server ist wegen Wartungsarbeiten vor&uuml;bergehend nicht erreichbar.</i><br>\n";
      } 
    //else-Zweig !isset($set) 

  • #2
    1. strings musst du in '' setzen:
    PHP Code:
    $sql "UPDATE filme_in_anschaffung SET 
               film_name ='"
    .$name."'
               film_genre ='"
    .$genre."'
               WHERE film_in_anschaffung_ID = "
    .$f_id;

    // und das => or die(mysql_error()); ist hier hyperfluid 
    2. wo werden eigentlich $name, $genre, $f_id definiert?

    3. btw: ist eigentlich sql, oder?
    Kissolino.com

    Comment


    • #3
      Re: Probleme mit UPDATE

      Original geschrieben von el_comandante
      Dieser Script ändert jedoch den Datensatz nicht. Aber es erscheint auch keine Fehlermeldung.
      ach! und nu?

      welche debug-versuche hast du bisher unternommen?

      wie wäre es z.b. mal mit einer augabe von
      echo "pfurz!";
      hinter dem
      if (!isset($set))
      um zu sehen, ob er in den if-zweig reingeht, bei else analog, etc.


      btw: wenn $set per GET oder POST übergeben worden sein soll, dann hast du mit ziemlicher wahrscheinlichkeit einfach nur ein register_globals-problem (suche bitte, was du dagegen tun kannst.)
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Comment


      • #4
        @Wurzel

        1. habe ich gemacht funkt leider immer noch nicht
        2. nach dem Buch sollten diese
        PHP Code:
        echo "<input type=\"text\" name=\name\" value=\"$film_name\">\n"
        hier definiert sein
        3. MySQL

        @wahsaga

        wie kann ich die echo's einfügen ohne dass diese Fehlermeldung erscheint.

        Fehlermeldung: parse error, unexpected T_ELSE

        Die Variable $set sollte eigentlich nicht per GET übergeben worden sein. Diese Variable habe ich nur in diesem script

        Comment


        • #5
          ich hoffe, du hast das query jetzt ordentlich übernommen.
          echo "<input type=\"text\" name=\name\" value=\"$film_name\">\n";
          da fehlt schonmal nen ".
          $set ist ne $_POST['set'] variable und ist nicht einfach so da.
          [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

          Comment


          • #6
            da fehlt schonmal nen ".
            war nur ein Schreibfehler im Forum

            Also die $set Variable ist zuerst false bis man den "Daten abspeichern" button drückt, nachher wird sie true
            sollte eigentlich schon stimmen

            Comment


            • #7
              1. wenn du dein form aufrufst, schau mal in den quelltext, ob alle felder => hidden auch mit einem wert gefüllt sind
              2. kommen die vars in der art an, wie $_POST['name'], $_POST['genre']
              3. hier
              PHP Code:
              echo "<input type=\"hidden\" name=\"film_in_anschaffung_ID\" value=\"$f_id\">\n"
              definierst du $_POST['film_in_anschaffung_ID'] und nicht $f_id, die du später beim update verändern willst
              4. http://www.schattenbaum.net wäre sicher ne gute adresse, um erstmal die grundlagen zu lernen

              ... to be continued ...
              Kissolino.com

              Comment


              • #8
                1. alle felder sind mit einem Wert gefüllt auch hidden

                2. die vars $_POST['name'], $_POST['genre'] kommen soweit ich das beurteilen kann richtig an.
                habe sie mit einem echo ausgegeben

                bevor ich etwas ändere stimmen sie mit den Daten im form überein
                wenn ich sie ändere gibt das echo die Änderung aus, jedoch im Form oder in der Datenbank geschieht nichts.

                3. habe es geändert, funkt aber weiterhin nicht

                4. wäre nicht nur, ist. Hilft mir bei diesem Problem aber leider nicht weiter. Und leider stehe ich unter Zeitdruck.

                Comment


                • #9
                  Original geschrieben von el_comandante
                  4. wäre nicht nur, ist. Hilft mir bei diesem Problem aber leider nicht weiter. Und leider stehe ich unter Zeitdruck.
                  ja, ja, wir haben alle unsere probleme

                  poste mal das sql-statement.
                  Kissolino.com

                  Comment


                  • #10
                    also

                    tbl filme_in_anschaffung

                    film_in_anschaffung_ID Primary Key
                    film_name
                    film_genre
                    kommentar
                    benutzer_ID

                    wenn du das mit sql statement meinst

                    Comment


                    • #11
                      nein, das meine ich nicht, ^^das ist die tabellenstruktur.

                      also, ich sehe für dich hier nur 2 möglichkeiten:
                      1. du willst es lernen
                      - dann bring zeit mit
                      - lerne die grundlagen aus einem buch oder bei schattenbaum.net
                      - übe an einfachen beispielen

                      2. du willst eine schnelle problemlösung
                      - poste es als projekthilfe oder unter jobangebote

                      so hat das jedenfalls keinen sinn.


                      btw: das habe ich gemeint:
                      PHP Code:
                      $sql "hier steht das statement, um die datenbanktabelle abzufragen, zu änder, etc."
                      Kissolino.com

                      Comment


                      • #12
                        Ok werde es unter projekthilfe posten.

                        Danke für die mithilfe

                        Comment


                        • #13
                          Könntest du dir trotzdem das sql statement nochmals ansehen

                          PHP Code:
                                $sql "UPDATE filme_in_anschaffung SET 
                                        film_name ='"
                          .$film_name."'
                                        film_genre ='"
                          .$film_genre."'
                                        kommentar ='"
                          .$kommentar."'
                                        benutzer_ID ='"
                          .$benutzerID."'
                                        WHERE film_in_anschaffung_ID = "
                          .$film_in_anschaffung_ID
                          wenn ich das !isset auf isset setze gibt er mir folgende Fehlermeldung

                          Fehler in der Syntay bei 'film_genre='Action' kommentar='fdklas gewrtwe" in Zeile 3
                          Last edited by ; 17-07-2003, 16:13.

                          Comment


                          • #14
                            Poste mal bitte den letzten Zustand des Scriptabschnittes!
                            *winks*
                            Gilbert
                            ------------------------------------------------
                            Hilfe für eine Vielzahl von Problemen!!!
                            http://www.1st-rootserver.de/

                            Comment


                            • #15
                              PHP Code:
                              <?php
                              require("biblio2.inc");

                              $film_in_anschaffung_ID$HTTP_GET_VARS["film_in_anschaffung_ID"];
                              $film_name $HTTP_GET_VARS["film_name"];
                              $film_genre $HTTP_GET_VARS["film_genre"];
                              $kommentar $HTTP_GET_VARS["kommentar"];
                              $benutzer_ID $HTTP_GET_VARS["benutzer_ID"];


                              if (!isset(
                              $set)) 
                                {
                                
                              seitenAnfang("Filme ver&auml;ndern");
                                echo 
                              "<h1>$film_name ver&auml;ndern</h1>\n";
                                echo 
                              "<form action=\"$PHP_SELF\" method=\"post\">\n";
                                echo 
                              "<input type=\"hidden\" name=\"set\" value=\"true\">\n";
                                echo 
                              "<input type=\"hidden\" name=\"film_in_anschaffung_ID\" value=\"$film_in_anschaffung_ID\">\n";
                                  echo 
                              "<table border=\"0\">\n";

                                  echo 
                              "<tr>\n";
                                  echo 
                              "<td><b>Name:</b></td>\n";
                                  echo 
                              "<td>\n";
                                  echo 
                              "<input type=\"text\" name=\"film_name\" value=\"$film_name\" size=\"50\" maxlength=\"30\">\n";
                                  echo 
                              "</td>\n";
                                  echo 
                              "</tr>\n";

                                  echo 
                              "<tr>\n";
                                  echo 
                              "<td><b>Genre:</b></td>\n";
                                  echo 
                              "<td>\n";
                                  echo 
                              "<input type=\"text\" name=\"film_genre\" value=\"$film_genre\" size=\"50\" maxlength=\"50\">\n";
                                  echo 
                              "</td>\n";
                                  echo 
                              "</tr>\n";

                                  echo 
                              "<tr>\n";
                                  echo 
                              "<td><b>Kommentar:</b></td>\n";
                                  echo 
                              "<td>\n";
                                  echo 
                              "<input type=\"text\" name=\"kommentar\" value=\"$kommentar\" size=\"50\" maxlength=\"50\">\n";
                                  echo 
                              "</td>\n";
                                  echo 
                              "</tr>\n";

                                  echo 
                              "<tr>\n";
                                  echo 
                              "<td><b>Benutzer ID:</b></td>\n";
                                  echo 
                              "<td>\n";
                                  echo 
                              "<input type=\"text\" name=\"benutzerID\" value=\"$benutzer_ID\" size=\"50\" maxlength=\"50\">\n";
                                  echo 
                              "</td>\n";
                                  echo 
                              "</tr>\n";
                                  
                                  echo 
                              "</table>\n";
                                  echo 
                              "<p>\n";
                                  echo 
                              "<input type=\"submit\" value=\"Daten abspeichern\">\n";
                                  echo 
                              "<input type=\"reset\" value=\"Daten verwerfen\">\n";
                                echo 
                              "</form>\n";

                                }  
                              //!isset($set)
                                
                              else 
                                {
                                include(
                              "db_connect2.inc");
                                
                              seitenAnfang("Filme ver&auml;ndert");
                                
                                
                                if(@
                              mysql_connect($host$user$pwd))
                                  {
                                  if(@
                              mysql_select_db($dbname))
                                    {
                                    
                              $sql "UPDATE filme_in_anschaffung SET 
                                            film_name ='"
                              .$film_name."'
                                            film_genre ='"
                              .$film_genre."'
                                            kommentar ='"
                              .$kommentar."'
                                            benutzer_ID ='"
                              .$benutzerID."'
                                            WHERE film_in_anschaffung_ID = "
                              .$film_in_anschaffung_ID;

                                    if(
                              mysql_query($sql) or die(mysql_error()))
                                      {
                                      echo 
                              "<h1>&Auml;nderung erfolgreich</h1>\n";
                                      echo 
                              "Die Filmdaten von <b> $film_name</b> wurde erfolgreich ge&auml;ndert.<p>";
                                      }
                                    else
                                      {
                                      echo 
                              "Der Datensatz konnte leider nicht gespeichert werden. ";
                                      echo 
                              "&Uuml;berpr&uuml;fen Sie Ihre Eingaben und versuchen es noch einmal.<p>\n";
                                      }
                                    } 
                              //mysql_select_db()
                                  
                              else
                                    echo 
                              "<br><i>Verbindung zur Datenbank ist im Moment nicht m&ouml;glich!</i><br>\n";
                                  
                              mysql_close();
                                  } 
                              //mysql_connect()
                                
                              else
                                  echo 
                              "<br><i>Der Server ist wegen Wartungsarbeiten vor&uuml;bergehend nicht erreichbar.</i><br>\n";
                                } 
                              //else-Zweig !isset($set)
                                
                              back(5);
                              ?>

                              Comment

                              Working...
                              X