Ankündigung

Einklappen
Keine Ankündigung bisher.

Update Befehl klappt nicht

Einklappen

Neue Werbung 2019

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

  • Update Befehl klappt nicht

    So wie ich ihn geschrieben habe, klappt er nicht, bei Schattenbaum und tut.php-q.net konnte ich mir keine Hilfe verschaffen. Was ist an meinem Code falsch?

    Code:
    $sql3 = "
        UPDATE
        	Mon_Biester,
        	Mon_Items
        SET
    	Item_Anzahl = Item_Anzahl - 1,
    	Biest_Zutraulichkeit = Biest_Zutraulichkeit + $var_item_zutraulichkeit
        WHERE
    	   Mon_Items.Item_UserNr = $User_ID 
       	   && Mon_Biester.Verbindung = $User_ID
    	   && Mon_Items.Item_Nummer = $var_item_nummer
    	   && Mon_Biester.Biest_Nummer = $var_biest_nummer";
    
    $result3 = mysql_query($sql3) OR die(mysql_error());
    if(mysql_num_rows($result3)) {
            while($row = mysql_fetch_assoc($result3)) {
    
    
    echo '<p align="center">Itemanzahl: '.$row['Item_Anzahl'].'</p>';}}


  • #2
    hi lioba,

    was erhälst du für ne fehlermeldung?

    ich bin mir frei aus dem kopf nicht sicher .. aber ändere doch mal die && in AND ..

    ne fehlermeldung würde aber weiterhelfen
    privater Blog

    Kommentar


    • #3
      hmm,
      also wie du es machst, sehe ich es zum ersten mal. ich mache immer einen extra mysql_query() für jede tabelle.

      Code:
      $update = mysql_query("UPDATE $db_tabelle Set username = '$neuer_name' WHERE id = '$_POST[id]'");
      $update = mysql_query("UPDATE $db_tabelle2 Set nachname = '$neuer_nachname' WHERE id = '$_POST[id]'");
      habe jetzt einfach so irgend was mit namen gemacht. also so mache ich es immer.

      mfg
      DarkManX

      Kommentar


      • #4
        Wie DarkManX anspricht: MySQL ünterstützt Queries dieser Art nicht

        Kommentar


        • #5
          hm, also irgednein nettes forumsmitglied hat mir folgendes vorgeschlagen, was auch funktioniert hat:
          $sql2 = "SELECT
          *
          FROM
          Mon_Itemliste,
          Mon_Items,
          Mon_Biester
          WHERE
          Mon_Itemliste.Item_ID = $var_item_nummer && Item_UserNr = $User_ID &&
          Mon_Biester.Biest_Nummer = $var_biest_nummer
          ORDER BY
          Item_ID
          ";

          $result2 = mysql_query($sql2) OR die(mysql_error());
          Diese vielen && Verbindungen klappen fehlerfrei, warum sollten sie bei einem Update nicht funktionieren?

          Und hier ist die Fehlermeldung:
          You have an error in your SQL syntax near ' Mon_Items SET Mon_Items.Item_Anzahl = Item_Anzahl - 1, Mon_Biest' at line 3

          Kommentar


          • #6
            a: frage mich gerade, was ein SELECT nun mit dem UPDATE zu tun hat ...
            b: das SELECT hat ja auch mit dem ausgespuckten Fehler nix am Hut*?!*
            c: Ja .. && geht .. ist aber un-SQLisch:
            Code:
            $sql2 = "
            SELECT  *
            
            FROM    Mon_Itemliste,
                    Mon_Items,
                    Mon_Biester    
                
            WHERE   Mon_Itemliste.Item_ID = $var_item_nummer
                AND Item_UserNr = $User_ID
                AND Mon_Biester.Biest_Nummer = $var_biest_nummer
                
            ORDER
                BY  Item_ID
            ";
            d: ich bin mir auch nicht sicher, was du da mit dem SELECT für Daten ziehen willst. Wollte eigetnlich ein JOIN aus den Tabellenverbindungen machen .. bis ich dann merkte, dass die Tabellen offensichtlich nicht in Bezug zueinander genommen werden ...

            Kommentar


            • #7
              a: frage mich gerade, was ein SELECT nun mit dem UPDATE zu tun hat ...
              Da habe ich die gleichen Verbindunegn benutzt (&&) Damit wollte ich zeigen, dass dieses System klappt. Mir war nicht klar, dass es bei einem UPDATE Befehl nicht funktioniert.

              b: das SELECT hat ja auch mit dem ausgespuckten Fehler nix am Hut*?!*
              Bei diesem SELECT habe ich das gleiche System verwendet, meiner Meinung nach, ist es einfacher && zu benutzen weil ich dachte dass man bei AND Klammern nehmen muss. Ok es hat sich als falsch rausgestellt, wie du in deinem Code beweist.

              d: ich bin mir auch nicht sicher, was du da mit dem SELECT für Daten ziehen willst. [...]
              Mit diesem SELECT hole ich mir die Infos über die Items, die Anzahl der Items, und die Biester der User(ich weiß nicht, wie ich das anders erklären soll ). Der SELECT Befehl klappt auch ohne weiteres ich habe ihn nur als Beispiel gepostet. Nach diesem Schema wollte ich ja auch den UPDATE Befehl machen, aber das haut immer noch nicht hin, selbst wenn ich es so schreibe:

              Code:
              $sql3 = "
                  UPDATE
                  	Mon_Items
                  SET
              	Item_Anzahl = Item_Anzahl - 1,
                  WHERE
              	   Item_UserNr = $User_ID 
              	   && Item_Nummer = $var_item_nummer";
              
              $result3 = mysql_query($sql3) OR die(mysql_error());
              Es erscheint diese Fehlermeldung:
              You have an error in your SQL syntax near 'WHERE Item_UserNr = 1 && Item_Nummer = 1' at line 6[/quote]

              Kommentar


              • #8
                Zitat von Lioba
                Nach diesem Schema wollte ich ja auch den UPDATE Befehl machen, aber das haut immer noch nicht hin, selbst wenn ich es so schreibe:
                Code:
                $sql3 = "
                    UPDATE
                    	Mon_Items
                    SET
                	Item_Anzahl = Item_Anzahl - 1, # <-- das Komma muß weg!
                    WHERE
                	   Item_UserNr = $User_ID 
                	   && Item_Nummer = $var_item_nummer";

                Kommentar


                • #9
                  Zitat von Lioba
                  Code:
                  $sql3 = "
                      UPDATE
                      	Mon_Items
                      SET
                  	Item_Anzahl = Item_Anzahl - 1,
                      WHERE
                  	   Item_UserNr = $User_ID 
                  	   && Item_Nummer = $var_item_nummer";
                  
                  $result3 = mysql_query($sql3) OR die(mysql_error());
                  Es erscheint diese Fehlermeldung:
                  You have an error in your SQL syntax near 'WHERE Item_UserNr = 1 && Item_Nummer = 1' at line 6
                  [/quote]

                  Hups . da waren wohl mal mehrere SETs .. da ist noch ein , als Relikt übrig geblieben .. ^^

                  Kommentar


                  • #10
                    Ja das Relikt hab ich entfernt!

                    jetzt sagt mir MySQL dass ein Argument nicht valid(?) ist. Was genau bedeutet diese Fehlermeldung?. Ja ich kann englisch ich gebe mir auch Mühe, doch die Fehlermeldungen meinen meißtens ganz andere Dinge als die die ich herausinterpretiere.

                    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web13/html/Webbiest/use_item.php on line 73

                    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web13/html/Webbiest/use_item.php on line 89

                    Kommentar


                    • #11
                      Die Query(|ies) auf denen die beiden jeweils aufbauen haben wohl einen Fehler, den du noch per mysql_error() abfangen müsstest.

                      Kommentar


                      • #12
                        Code:
                        $sql4 = "
                            UPDATE
                            	Mon_Biester
                            SET
                        	Biest_Zutraulichkeit = Biest_Zutraulichkeit + $var_item_zutraulichkeit
                            WHERE
                        	Verbindung = $User_ID
                        	AND Biest_Nummer = $var_biest_nummer";
                        
                        $result4 = mysql_query($sql4) OR die(mysql_error());
                        if(mysql_num_rows($result4)) {
                                while($row = mysql_fetch_assoc($result4)) {
                        
                        
                        echo '<p align="center">Zutraulichkeit: '.$row['Biest_Zutraulichkeit'].'</p>';
                        $var_mon_zutraulichkeit = $row['Biest_Zutraulichkeit'];
                        ;}}
                        der Code

                        Kommentar


                        • #13
                          So danke für eure Hilfe, mein Problem ist glöst! Ich musste einen neuen SELECT Befehl einfügen jetzt klappt alles!

                          Kommentar

                          Lädt...
                          X