Update-Problem mit MySQL

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

  • Update-Problem mit MySQL

    Ich mach grad eine Homepage für nen Verein. Dort hab ich eine Mitgliederliste, die von ner MySQL Datenbank hergeholt wird. Dann hab ich für den Präsidenten eine Änderungsseite der Liste eingerichtet (Nätürlich mit Passwortschutz). Dort kann er einen einzelnen Datensatz auswählen und nachher auf einen Button klicken, welcher ihm dann die einzelnen Daten dieses Datensatzes in Editfelder reinschreibt. Dort kann er dann die einzelnen Daten ändern. Soweit bin ich gekommen. Dann soll er durch einen weiteren Klick (wenn er die Änderungen vorgenommen hat) den veränderten Datensatz in der Datenbank "updaten". Nur das funktioniert nicht richtig. Ich verwende dazu den Befehl "update". Eigentlich müsste alles gehen. Hab echt keinen Fehler gesehn. Kann mir wer helfen????

    Hier der Quellcode:

    PHP-Code:
    elseif ($HTTP_POST_VARS["waehlen"]=="Wählen")
       {
       if (is_array($ID))
          {
          while (list($key,$value) = each($ID))
             {
             $sql = "SELECT * FROM vorstand WHERE `Id` = '$value'";
             $Resultat=mysql_query($sql, $mdb);
             if (!$Resultat) die("Anfrage war nicht erfolgreich");
             //Daten in Tabelle ausgeben:
               while ($zeile=mysql_fetch_array($Resultat))
               {
             //$Resultat=mysql_query($sql, $mdb) or die("Anfrage schlug fehl! Fehler: "
             //                                 ."<li>errorno=".mysql_errno()
             //                                 ."<li>error=".mysql_error()
             //                                 ."<li>query=".$query
             //                                );
          ?>
          <tr>
            <td height="40" align="left" valign="top">Nummer:</td>  
            <td height="40" align="left" valign="top"><Input Type="text" Name="ID2" Readonly value="<?=$value?>" Size=30 Maxlength=30></input></td>
            <td><Input Type="submit" name="aendern" value="Ändern"></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">Firma:</td>  
            <td height="40" align="left" valign="top"><Input Type="text" Name="Firma2"  value="<?=$zeile[Firma]?>" Size=30 Maxlength=30></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">Zweck:</td>
            <td height="40" align="left" valign="top"><Input Type="text" Name="Zweck2"  value="<?=$zeile[Zweck]?>" Size=30 Maxlength=30></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">Vorname:</td>
            <td height="40" align="left" valign="top"><Input Type="text" Name="Vorname2"  value="<?=$zeile[Vorname]?>" Size=30 Maxlength=30></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">Name:</td>
            <td height="40" align="left" valign="top"><Input Type="text" Name="Name2"  value="<?=$zeile[Name]?>" Size=30 Maxlength=30></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">Strasse:</td>
            <td height="40" align="left" valign="top"><Input Type="text" Name="Strasse2"  value="<?=$zeile[Strasse]?>" Size=30 Maxlength=30></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">Postfach:</td>
            <td height="40" align="left" valign="top"><Input Type="text" Name="Postfach2"  value="<?=$zeile[Postfach]?>" Size=30 Maxlength=30></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">PLZ:</td>
            <td height="40" align="left" valign="top"><Input Type="text" Name="PLZ2"  value="<?=$zeile[PLZ]?>" Size=30 Maxlength=30></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">Ort:</td>
            <td height="40" align="left" valign="top"><Input Type="text" Name="Ort2"  value="<?=$zeile[Ort]?>" Size=30 Maxlength=30></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">Telefon:</td>
            <td height="40" align="left" valign="top"><Input Type="text" Name="Telefon2"  value="<?=$zeile[Telefon]?>" Size=30 Maxlength=30></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">Telefax:</td>
            <td height="40" align="left" valign="top"><Input Type="text" Name="Telefax2"  value="<?=$zeile[Telefax]?>" Size=30 Maxlength=30></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">E-Mail:</td>
            <td height="40" align="left" valign="top"><Input Type="text" Name="Email2"  value="<?=$zeile[Email]?>" Size=30 Maxlength=30></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">Internet:</td>
            <td height="40" align="left" valign="top"><Input Type="text" Name="Internet2"  value="<?=$zeile[Internet]?>" Size=30 Maxlength=30></input></td>
          </tr>
          <tr>
            <td height="40" align="left" valign="top">Status:</td>
            <td height="40" align="left" valign="top"><Input Type="text" Name="Status2"  value="<?=$zeile[Status]?>" Size=30 Maxlength=30></input></td>
          </tr>
       <?php
               
    }
             }
          }
       }
    elseif (
    $HTTP_POST_VARS["aendern"]=="Ändern")
       {
       
    $Value $HTTP_POST_VARS["ID2"];
       
    $Firma $HTTP_POST_VARS["Firma2"];
       
    $Zweck $HTTP_POST_VARS["Zweck2"];
       
    $Vorname $HTTP_POST_VARS["Vorname2"];
       
    $Name $HTTP_POST_VARS["Name2"];
       
    $Postfach $HTTP_POST_VARS["Postfach2"];
       
    $Strasse $HTTP_POST_VARS["Strasse2"];
       
    $PLZ $HTTP_POST_VARS["PLZ2"];
       
    $Ort $HTTP_POST_VARS["Ort2"];
       
    $Telefon $HTTP_POST_VARS["Telefon2"];
       
    $Telefax $HTTP_POST_VARS["Telefax2"];
       
    $Email $HTTP_POST_VARS["Email2"];
       
    $Internet $HTTP_POST_VARS["Internet2"];
       
    $Status $HTTP_POST_VARS["Status2"];
       
    $sql "Update `vorstand` SET ( `Id` , `Firma` , `Zweck` ,
                  `Vorname` , `Name` , `Strasse` , `Postfach` , `PLZ` , `Ort` ,
                  `Telefon` , `Telefax` , `Email` , `Internet` , `StatusM` ) VALUES
                  ('', '
    $Firma', '$Zweck', '$Vorname', '$Name', '$Strasse', '$Postfach',
     '             
    $PLZ', '$Ort', '$Telefon', '$Telefax', '$Email', '$Internet', '$Status')";
       
    $Resultat=mysql_query($sql$mdb);
       
    $sql "SELECT * FROM vorstand ORDER BY `Firma`";
       
    $Resultat=mysql_query($sql$mdb);
       if (!
    $Resultat) die ("Anfrage war nicht erfolgreich");
       while (
    $zeile=mysql_fetch_array($Resultat))
          {
          
    ?>
          <tr>
            <td><input type=checkbox name="ID[]" value="<?=$zeile[Id]?>"></td>
            <td height="40" align="left" valign="top"><?=$zeile[Firma]?></td>
            <td height="40" align="left" valign="top"><?=$zeile[Zweck]?></td>
            <td height="40" align="left" valign="top"><?=$zeile[Vorname]?></td>
            <td height="40" align="left" valign="top"><?=$zeile[Name]?></td>
            <td height="40" align="left" valign="top"><?=$zeile[Strasse]?></td>
            <td height="40" align="left" valign="top"><?=$zeile[Postfach]?></td>
            <td height="40" align="left" valign="top"><?=$zeile[PLZ]?></td>
            <td height="40" align="left" valign="top"><?=$zeile[Ort]?></td>
            <td height="40" align="left" valign="top"><?=$zeile[Telefon]?></td>
            <td height="40" align="left" valign="top"><?=$zeile[Telefax]?></td>
            <td height="40" align="left" valign="top"><?=$zeile[Email]?></td>
            <td height="40" align="left" valign="top"><?=$zeile[Internet]?></td>
            <td height="40" align="left" valign="top"><?=$zeile[StatusM]?></td>
          </tr>
    So müsste das dann ausschaun:

    http://lsvr02.kanti-frauenfeld.ch/~fgeiger/vorstand.jpg

    http://lsvr02.kanti-frauenfeld.ch/~f.../vorstand2.jpg

    Edit: Sorry, dass das ganze so breit is. Werde die Bilder noch verkleinern
    Zuletzt geändert von wahsaga; 20.10.2004, 14:39.

  • #2
    ich kann mir nicht helfen, aber auf http://dev.mysql.com/doc/mysql/en/UPDATE.html sieht das anders aus

    mach bitte mal
    PHP-Code:
    $Resultat=mysql_query($sql$mdb) or die(mysql_error()); 
    statt
    PHP-Code:
    $Resultat=mysql_query($sql$mdb); 
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      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 '( `Id` , `Firma` , `Zweck` ,`Vorname` , `Name` , `Strasse` , ......

      Kommentar


      • #4
        Original geschrieben von mrhappiness
        ich kann mir nicht helfen, aber auf http://dev.mysql.com/doc/mysql/en/UPDATE.html sieht das anders aus
        ich würde wetten, dass es da richtig steht

        man könnte sich da zwecks korrekter syntax informieren...
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          PHP-Code:
           $sql "Update `vorstand` SET ( `Id` , `Firma` , `Zweck` ,
                        `Vorname` , `Name` , `Strasse` , `Postfach` , `PLZ` , `Ort` ,
                        `Telefon` , `Telefax` , `Email` , `Internet` , `StatusM` ) VALUES
                        ('', '
          $Firma', '$Zweck', '$Vorname', '$Name', '$Strasse', '$Postfach',
           '             
          $PLZ', '$Ort', '$Telefon', '$Telefax', '$Email', '$Internet', '$Status')"
          PHP-Code:
           WHERE ?????? 
          Du musst ihm schon sagen wen er updaten soll.
          und den vorstand brauch man glaube ich nicht in ` setzen.

          WHERE id =$_POST['ID'] würde ich einfach mal hintendran hängen.
          Soll in id nix geschriebn werden? würde ich raus nehmen aus dem Update, weil so schreibt er nen leerstring rein.
          Wenn er das bei allen macht kannste sie über die id nich mehr unterscheiden!
          Das Leben ist kein Ponyhof.

          Kommentar


          • #6
            Ich habs jetzt so:

            PHP-Code:
            $sql "UPDATE vorstand SET Firma='$Firma', Zweck='$Zweck', 
            Vorname='
            $Vorname', Name='$Name', Strasse='$Strasse',
            Postfach='
            $Postfach', PLZ='$PLZ', Ort='$Ort', Telefon='$Telefon',
            Telefax='
            $Telefax', Email='$Email', Internet='$Internet', StatusM='$Status'
            WHERE Id ='
            $value'"
            Aber jetzt passiert gar nix mehr... Keine Meldung, keine Veränderung der Daten, nix

            Kommentar


            • #7
              Keine Fehlermeldung? siehe mrhappiness (mysql_error).
              In Deinen POST_ Variablen steht was?
              Lass Dir die mal ausgeben.
              Und lass mal die ganzen Hochkommas weg (Firma=$Firma).
              Wendel
              Das Leben ist kein Ponyhof.

              Kommentar


              • #8
                Original geschrieben von Wendel
                Und lass mal die ganzen Hochkommas weg (Firma=$Firma).
                ich würd sie stehen lassen, da ich nicht davon ausgehe, dass es sich immer nur um zahlen handelt...
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  @mrhappiness Si Claro
                  Zuletzt geändert von Wendel; 21.10.2004, 10:59.
                  Das Leben ist kein Ponyhof.

                  Kommentar


                  • #10
                    Die Variabeln hab ich mri ausgeben lassen. Da steht definitiv alles richtig. Eine Fehlermeldung mit mysql_error gibts auch keine. Es passiert einfach nix...

                    Kommentar


                    • #11
                      lass dir mal das statement mit echo ausgeben und poste es hier

                      den php-code dazu bitte auch
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        bitte nicht auslachen, aber..... welches statement?

                        Kommentar


                        • #13
                          bitte nicht auslachen, aber..... welches statement?
                          das sql-statement, welches du an die db sendest, praktisch der inhalt von $sql, einfach ein echo davorsetzen, ...
                          Die Zeit hat ihre Kinder längst gefressen

                          Kommentar


                          • #14
                            PHP-Code:
                            $Value = $HTTP_POST_VARS["ID2"];
                               $Firma = $HTTP_POST_VARS["Firma2"];
                               $Zweck = $HTTP_POST_VARS["Zweck2"];
                               $Vorname = $HTTP_POST_VARS["Vorname2"];
                               $Name = $HTTP_POST_VARS["Name2"];
                               $Postfach = $HTTP_POST_VARS["Postfach2"];
                               $Strasse = $HTTP_POST_VARS["Strasse2"];
                               $PLZ = $HTTP_POST_VARS["PLZ2"];
                               $Ort = $HTTP_POST_VARS["Ort2"];
                               $Telefon = $HTTP_POST_VARS["Telefon2"];
                               $Telefax = $HTTP_POST_VARS["Telefax2"];
                               $Email = $HTTP_POST_VARS["Email2"];
                               $Internet = $HTTP_POST_VARS["Internet2"];
                               $Status = $HTTP_POST_VARS["Status2"];
                               $sql = "UPDATE vorstand SET Firma='$Firma', Zweck='$Zweck',
                            Vorname='$Vorname', Name='$Name', Strasse='$Strasse',
                            Postfach='$Postfach', PLZ='$PLZ', Ort='$Ort', Telefon='$Telefon',
                            Telefax='$Telefax', Email='$Email', Internet='$Internet', StatusM='$Status'
                            WHERE Id ='$value'";    
                               echo($sql);
                               $Resultat=mysql_query($sql, $mdb) or die (mysql_error());
                               $sql = "SELECT * FROM vorstand ORDER BY `Firma`";
                               $Resultat=mysql_query($sql, $mdb);
                               if (!$Resultat) die ("Anfrage war nicht erfolgreich");
                               while ($zeile=mysql_fetch_array($Resultat))
                                  {
                                  ?>
                                  <tr>
                                    <td><input type=checkbox name="ID[]" value="<?=$zeile[Id]?>"></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[Firma]?></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[Zweck]?></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[Vorname]?></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[Name]?></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[Strasse]?></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[Postfach]?></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[PLZ]?></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[Ort]?></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[Telefon]?></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[Telefax]?></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[Email]?></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[Internet]?></td>
                                    <td height="40" align="left" valign="top"><?=$zeile[StatusM]?></td>
                                  </tr>
                            Es kam folgendes:

                            UPDATE vorstand SET Firma='Brenner AG Tägerwilen', Zweck='Bedachungen, Fassaden-, Holz- und Gerüstbau', Vorname='Erwin', Name='Brenner', Strasse='Konstanzerstr. 14', Postfach='Postfach 14', PLZ='8274', Ort='Tägerwilen', Telefon='071 669 30 55', Telefax='071 669 30 56', Email='taegerwilen@brenner-ag.ch', Internet='www.brenner-ag.ch', StatusM='' WHERE Id =''
                            Zuletzt geändert von Vegeta_D2; 21.10.2004, 16:18.

                            Kommentar


                            • #15
                              Alles klar.... Ich habs ^^

                              WHERE Id ='$value'"; da hätte ich value gross schreiben müssen....

                              Danke erstmal

                              Neues Problem: Die Datensätze, die ich geändert hab, kommen jetzt vor allen anderen. Das heisst: Der ORDER BY Befehl funktioniert nicht mehr richtig. Kennt ihr das Problem?
                              Zuletzt geändert von Vegeta_D2; 21.10.2004, 16:40.

                              Kommentar

                              Lädt...
                              X