Zwei Datensätze durch 'UPDATE' in die Datenbank schreiben

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

  • Zwei Datensätze durch 'UPDATE' in die Datenbank schreiben

    Ein nettes 'Hallo' von einem Newbie

    Mein Problem ist, ich möchte mehrere Datensätze gleichzeitig durch eine Formular in meiner Datenbank ändern. Jedoch bisher ohne Erfolg
    Das erste Update in die Datenbank wird ohne Probleme duchgeführt, das zweite jedoch nicht. Was mache ich falsch? Ich dachte bei 'if' könnte man mehre Anweisungen durchführenlassen. Habe schon überall nachgelesen jedoch nirgends eine Antwort auf meine Frage gefunden. Wäre wirklich nett wenn mir jemand helfen könnte. Mein Code:

    PHP-Code:
    <form name="form1" method="get" action="<? echo $PHP_SELF ?>">
        <input name="Test" type="hidden"value="Test1">
        <?php echo $artikel[0];?> 
            <input type="submit" name="Submit" value="Senden">
    </form>


            <? if ($_GET["Test"] == "Test1") {
                        $up1 = "UPDATE artikel2 
                            SET
                            name = 'gross'
                            WHERE
                            id = '1_27'";
                            mysql_query($up1);
                            
                        $up2 = "UPDATE artikel2 
                            SET
                            name = 'klein'
                            WHERE
                            id = '1_41'";
                            mysql_query($up2); 
                            }    
                                ?>
    Zuletzt geändert von ZapPPa; 08.11.2006, 20:02.

  • #2
    mysql_error()
    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


    • #3
      Das habe ich probiert. Da meldet er mir: Parse error: sytax error, unexpected T_VARIABLE on line 77.

      Und was heisst es nun??? Das es nicht möglich ist beide Datensätze zu ändern?

      Kommentar


      • #4
        Und was heisst es nun??? Das es nicht möglich ist beide Datensätze zu ändern?
        nein, dass dein query falsch ist. poste den relevanten code aus zeile 77 plus ein wenig mehr. btw:
        PHP-Code:
        $ok mysql_query($up1) or die ...; 
        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Der Code aus Zeile 77 ist:

          PHP-Code:
           $up2 "UPDATE artikel2 
          Wie bereits erwähnt. $up1 wird ohne Probleme in der Datenbank verändert.

          Nur eben diese Anweisung $up2 nimmt die Datenbank nicht. Als ob er nach der ersten mysql_query abbrechen würde.

          Kommentar


          • #6
            htm, seltsam. was ergibt:
            PHP-Code:
            $ok mysql_query($up2) or die ...;
            echo 
            $ok
            unter umständen mal den query ausgeben und dann mit einem frontend wie phpmyadmin oder mysqlfront testen
            PHP-Code:
            echo $up2
            mach mal folgendes:
            PHP-Code:
            <? if ($_GET["Test"] == "Test1") 
            {
               $up1 = "UPDATE artikel2 
                             SET
                             name = 'gross'
                             WHERE
                             id = '1_27'";
                             $ok1 = mysql_query($up1);
                              
               if ($ok1)
               {
                     $up2 = "UPDATE artikel2 
                                   SET
                                   name = 'klein'
                                   WHERE
                                   id = '1_41'";
                                   $ok2 = mysql_query($up2); 
               }

            echo $ok2;   
            ?>
            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Peter ich habe nun deinen Code mal probiert. Dann zeigt er mir mein Formular wie bisher ohne Fehlermeldung noch sonstwas. Aber in die Datenbank wird nur up1 eingetragen. up2 wird immer noch einfach ingnoriert. Ich kapier mittlerweilen auch die Welt nicht mehr da ich bereits seit Tagen rumprobiere und einfach auf der Stelle trete.

              Kommentar


              • #8
                wir vermissen immer noch ein:
                PHP-Code:
                mysql_query($wtf-ever) or die(mysql_error()); 
                wenn dein erstes update nicht erfolgreich war (im sinne einer sql-anweisung), dann kommst du nie zu der anderen anweisung (mit if).

                abgesehen davon, weist ein parse_error auf einen anderen fehler hin. mal im editor gaaaaaaaaanz rechts geschaut, ob da VOR zeile 77 noch müll steht?
                Kissolino.com

                Kommentar


                • #9
                  Wenn ich dich richtig verstanden habe Wurzel müsste mein Code folglich so aussehen:
                  PHP-Code:
                  <? if ($_GET["Test"] == "Test1") {
                                      $up1 = "UPDATE artikel2 
                                          SET
                                          name = 'gross'
                                          WHERE
                                          id = '1_27'";
                                          mysql_query($up1) or die (mysql_error());
                                          
                                      $up2 = "UPDATE artikel2 
                                          SET
                                          name = 'klein'
                                          WHERE
                                          id = '1_41'";
                                          mysql_query($up2) or die (mysql_error());
                                          }    
                                              ?>
                  Habe den Code nun verändert, mein Formular erscheint wieder. In der Datenbank hat sich 1_27 verändern. (Habe die Datenbank offen und sehe das). 1_41 verändert sich jedoch immer noch nicht. Eine Fehlermeldung bekomme ich auch keine.

                  Kommentar


                  • #10
                    du hast mich richtig verstanden.

                    wenn:
                    - dein error-reporting scharf ist, und nichts kommt
                    - in deiner tabelle artikel2 ein artikel mit >name = 'kunterbunt'< existiert und die id '1_41' aufweist
                    - kein mysql_error kommt

                    dann hat deine db oder dein script doofe ohren oder einen schuss durch die socke. syntaktisch ist das alles in ordnung.

                    was passiert, wenn du $up1 nicht ausführst, sondern nur $up2?
                    Kissolino.com

                    Kommentar


                    • #11
                      1. schließe die query mit einem semikolon ab.
                      2. von welchem typ ist die spalte "id"?

                      Kommentar


                      • #12
                        Zu Wurzel:
                        wenn ich nur up2 ausführe trägt er es mir immer noch nicht ein.

                        Zu penizillin:
                        Der Typ von id ist varchar

                        eine Möglichkeit wie es funktioniert wäre sooooo- habe es bereits getestet, der Code sieht aber meiner Meinung nach voll nach Müll aus gggg:
                        PHP-Code:
                        <? if ($_GET["Test"] == "Test1") {
                                            $del_sql="DELETE FROM  artikel2 
                                                     WHERE id='1_27'";
                                            mysql_query($del_sql) or die (mysql_error());
                                            $sql="INSERT INTO artikel2 (id, name) VALUES ('1_27', 'gross')";
                                            mysql_query($sql);
                                            $delete="DELETE FROM  artikel2
                                                     WHERE id='1_41'";
                                          mysql_query($delete);
                                            $sql2="INSERT INTO artikel2 (id,  name) VALUES ('1_41',  'klein')";
                                            mysql_query($sql2) or die (mysql_error());
                                            }
                                            ?>
                        Nun wünsche ich mal noch eine angenehme Nachtruhe - ich muss in die Heia

                        Kommentar


                        • #13
                          Original geschrieben von penizillin
                          1. schließe die query mit einem semikolon ab.
                          Nein, bei Nutzung von mysql_query wird davon explizit abgeraten.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            warum eigentlich?

                            Kommentar


                            • #15
                              mir war so, dass mysql_query das am ende anhängt oder?!

                              Kommentar

                              Lädt...
                              X