Probleme mit UPDATE

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

  • 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

    Kommentar


    • #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.

      Kommentar


      • #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

        Kommentar


        • #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]

          Kommentar


          • #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

            Kommentar


            • #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

              Kommentar


              • #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.

                Kommentar


                • #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

                  Kommentar


                  • #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

                    Kommentar


                    • #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

                      Kommentar


                      • #12
                        Ok werde es unter projekthilfe posten.

                        Danke für die mithilfe

                        Kommentar


                        • #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
                          Zuletzt geändert von ; 17.07.2003, 17:13.

                          Kommentar


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

                            Kommentar


                            • #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);
                              ?>

                              Kommentar

                              Lädt...
                              X