IF ELSE Abfrage, wo ist der Fehler (heul)

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

  • #16
    Pfoa! Weißt Du daß ich Probleme habe zu folgen, Kommt mir vor wie ein Rätsel aus einem P.M.:

    Und das komische ist das ich jetzt den Artikel zwei mal in der tabelle Korb habe mit je 4x Menge. Ich habe den Artikel mit 1x eingetragen und habe dann das Update versucht mit 3x und habe jetzt den Artikel zweimal in korb mit je 4x.
    ... aber er macht immer noch Ein Update und ein Insert gleichzeitig und macht beim insert gleich eine erhöhung der Menge beim Insert.


    Machen wir es anders rum Du rätselst, ich seh ja nix und weiß ja nicht um was es geht. Der Knackpunkt ist die Schleife
    Code:
    	while ($row = mysql_fetch_array($res)) { // Betrifft ALLE Einträge der SessionID
    		if ($row[ArtikelNR] == $F2) {  // Wenn Die Artikel# $F2 entspricht -> update
    			$NF5 = $row[Menge] + $F5; 
    			$sqlab = "update $korb set Menge = '$NF5' where SessionID='$F1' and ArtikelNR='$F2'"; 
    		} else {  // Ansonsten, also wenn die Artikel# NCVHT $F2 entspricht -> insert, das kann aber 1000x der Fall sein
    			$sqlab = "insert $korb (SessionID, ArtikelNR, ArtikelName, Preis, Menge, datum)
     			values ('$F1', '$F2', '$F3', '$F4', '$F5', '$tag')"; 
    		} 
    		mysql_db_query("$MySQL_Data", $sqlab); 
    	}
    Kannst Du mit den Kommentaren was anfangen? Ursprünglich hatte ich Dir einen print eingebaut, ich weiß nicht wie oft er da was geprintet hat - bei mir klickts noch nicht - aber vielleicht bei Dir?

    Und es ist echter SCHade in diesem Forum, daß die strukturierten Einrückungen bei eine Code nicht angezeigt werden

    Kommentar


    • #17
      Habe das Script jetzt mal so geändert:
      Code:
      <?php
      include("../inc/db_data.inc.php");
      if ($gesendet) { 
      
      print "Ausgabe 1<br>F1 = $F1<br>F2 = $F2<br>F3 = $F3<br>F4 = $F4<br>F5 = $F5<br>Datum = $tag<br>";
      
      $db = mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw") or die (mysql_error()); 
      mysql_select_db("$MySQL_Data"); 
      $res = mysql_query("SELECT * FROM $korb where SessionID='$F1'") or die (mysql_error()); 
      $num = mysql_num_rows($res); 
      
      while ($row = mysql_fetch_array($res)) { 
      if ($row[ArtikelNR] =! $F2)
      {
      global $F1, $F2, $F3, $F4, $F5, $tag;
      print "Ausgabe 2<br>F1 = $F1<br>F2 = $F2<br>F3 = $F3<br>F4 = $F4<br>F5 = $F5<br>Datum = $tag<br>NF5 = $NF5<br>";
      
      $NF5 = $row[Menge] + $F5; 
      
      $sqlab = "update $korb set Menge = '$NF5' where SessionID='$F1' and ArtikelNR='$F2'"; 
      
      }
      else
      { 
      global $F1, $F2, $F3, $F4, $F5, $tag;
      print "Ausgabe 3<br>F1 = $F1<br>F2 = $F2<br>F3 = $F3<br>F4 = $F4<br>F5 = $F5<br>Datum = $tag<br>NF5 = $NF5<br>";
      
      $sqlab = "insert $korb (SessionID, ArtikelNR, ArtikelName, Preis, Menge, datum)
       values ('$F1', '$F2', '$F3', '$F4', '$F5', '$tag')"; 
      
      } 
      mysql_db_query("$MySQL_Data", $sqlab); 
      } 
      } 
      // header("Location: warenkorb.php");
      ?>
      Die erste Ausgabe kommt, aber keine weitere. Was ist bloß falsch?
      *winks*
      Gilbert
      ------------------------------------------------
      Hilfe für eine Vielzahl von Problemen!!!
      http://www.1st-rootserver.de/

      Kommentar


      • #18
        =! kenn ich nicht, mag aber nichts bedeuten, ich schreibe immer !=

        Kommentar


        • #19
          Vielleicht geht die Schleife nicht, weil Du keinen Record aus der DB erhalten hast.
          ..
          $num = mysql_num_rows($res);
          print "num:$num<br>";
          ...

          Kommentar


          • #20
            War ein Fehler meiner Seits, liegt aber nicht daran.

            Die Prints habe ich mal eingebaut, damit ich sehe wo der Fehler liegt. aber es zeigt mir immer nur die erste Printausgabe an und keine weitere.

            Ich möchte doch nur ein Input-Script haben das mir folgendes macht.
            Schaue in der Tabelle Korb nach ob unter der SessionIDein Artikel mit der ArtikelNR schon eingetragen ist, wenn nicht trage den Artikel ein, wenn ja dann erhöhe die Menge mit Update.

            Edit
            num:0
            /edit
            *winks*
            Gilbert
            ------------------------------------------------
            Hilfe für eine Vielzahl von Problemen!!!
            http://www.1st-rootserver.de/

            Kommentar


            • #21
              Code:
              <?php
              include("../inc/db_data.inc.php");
              if ($gesendet) { 
              	$db = mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw") or die (mysql_error()); 
              	mysql_select_db("$MySQL_Data"); 
              	$res = mysql_query("SELECT * FROM $korb where SessionID='$F1' and ArtikelNR == '$F2'") or die (mysql_error()); 
              	$num = mysql_num_rows($res);
              	if ($num == 0) {
              		$sqlab = "insert $korb (SessionID, ArtikelNR, ArtikelName, Preis, Menge, datum)
               		values ('$F1', '$F2', '$F3', '$F4', '$F5', '$tag')";
              	} else {
              		$NF5 = $row[Menge] + $F5; 
              		$sqlab = "update $korb set Menge = '$NF5' where SessionID='$F1' and ArtikelNR='$F2'"; 
              	}
              	mysql_db_query("$MySQL_Data", $sqlab); 
              } 
              header("Location: warenkorb.php");
              ?>

              Kommentar


              • #22
                Stopp
                $NF5 = $row[Menge] + $F5;
                wird nicht hinhauen

                Kommentar


                • #23
                  jetzt geht der erst Eintrag aber es wird kein update durchgeführt.
                  *winks*
                  Gilbert
                  ------------------------------------------------
                  Hilfe für eine Vielzahl von Problemen!!!
                  http://www.1st-rootserver.de/

                  Kommentar


                  • #24
                    Code:
                    <?php
                    include("../inc/db_data.inc.php");
                    if ($gesendet) { 
                    	$db = mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw") or die (mysql_error()); 
                    	mysql_select_db("$MySQL_Data"); 
                    	$res = mysql_query("SELECT * FROM $korb where SessionID='$F1' and ArtikelNR == '$F2'") or die (mysql_error()); 
                    	$num = mysql_num_rows($res);
                    	if ($num == 0) {
                    		$sqlab = "insert $korb (SessionID, ArtikelNR, ArtikelName, Preis, Menge, datum)
                     		values ('$F1', '$F2', '$F3', '$F4', '$F5', '$tag')";
                    	} else {
                    		while ($row = mysql_fetch_array($res)) {
                    			$NF5 = $row[Menge] + $F5; 
                    		} 
                    		$sqlab = "update $korb set Menge = '$NF5' where SessionID='$F1' and ArtikelNR='$F2'";	
                    	}
                    	mysql_db_query("$MySQL_Data", $sqlab); 
                    } 
                    header("Location: warenkorb.php");
                    ?>

                    Kommentar


                    • #25
                      Ein Fehler ist noch drin:
                      $res = mysql_query("SELECT * FROM $korb where SessionID='$F1' and ArtikelNR == '$F2'") or die (mysql_error());

                      muß heißen:
                      $res = mysql_query("SELECT * FROM $korb where SessionID='$F1' and ArtikelNR = '$F2'") or die (mysql_error());

                      jetzt gehts.

                      1000mal Danke Wohnst du in b-?

                      Dann hast du dir ein Bier verdient auch so hast du dir es verdient.
                      *winks*
                      Gilbert
                      ------------------------------------------------
                      Hilfe für eine Vielzahl von Problemen!!!
                      http://www.1st-rootserver.de/

                      Kommentar


                      • #26
                        Hättest Du es doch gleich gesagt was Du willst. Mann bin ich erleichtert. Nein nein ich komme nicht aus Deutschland, bin ein Össi, oder ihr sagt Schluchtenscheißer, deshalb wird es wohl nix aus dem Bier. Weder eines für B- noch eines auch so

                        Kommentar


                        • #27
                          Trinkst du kein Bier oder magst du kein Bier?
                          *winks*
                          Gilbert
                          ------------------------------------------------
                          Hilfe für eine Vielzahl von Problemen!!!
                          http://www.1st-rootserver.de/

                          Kommentar


                          • #28
                            Aber natürlich trinke ich Bier und das gute daran, ich mag es auch.
                            Nur nicht beim Autofahren, da schütt' ich mich in der Kurve immer an

                            Kommentar

                            Lädt...
                            X