mysql mehrere Daten gleichzeitig updaten

hups1803

Erfahrenes Mitglied
Hallo,

habe folgendes Problem ,ich habe einen warenkorb der bei mehren inhalten das anzeigt

HTML:
<form method="post" action="" target="">
		
    
      <input type="hidden" value="119" name="item_number1">
      <input type="hidden" value="hups" name="kaufer">
      <input type="hidden" value="1" name="verkauft">
      
      <input type="hidden" value="121" name="item_number2">
      <input type="hidden" value="hups" name="kaufer">
      <input type="hidden" value="1" name="verkauft">
      
      <input type="hidden" value="123" name="item_number3">
      <input type="hidden" value="hups" name="kaufer">
      <input type="hidden" value="1" name="verkauft">
      
            <input type="submit" value="SHOP_09" class="button">
					</form>

nun weiss ich leider nicht wie ich damit alle angesprochenen daten in der Datenbank update

der normale einzeleintrag sieht so aus
PHP:
$verkauft = ( @get_magic_quotes_gpc() ) ? $_POST['verkauft'] : @addslashes($_POST['verkauft']);
$kaufer = ( @get_magic_quotes_gpc() ) ? $_POST['kaufer'] : @addslashes($_POST['kaufer']);
$tel = ( @get_magic_quotes_gpc() ) ? $_POST['tel'] : @addslashes($_POST['tel']);


 /* DB Insert */
  $mysql = new db();
  $mysql->db_Connect($mySQLserver,$mySQLuser,$mySQLpassword,$mySQLdefaultdb);
  $rtn = $mysql->db_Update("floh","verkauft='$verkauft',kaufer='$kaufer',tel='$tel' WHERE id='$display_sku_number'");

wie kann ich den verändern das er alle daten in die db einträgt ****


ps:

der warenkorb wird so hergestellt:

form

PHP:
<form action="show_basket.php" method="post" class="basket" name="submit">
							<input type="hidden" value="'.$row1['id'].'" name="item_id">
							<input type="hidden" value="'.$row1['k_text'].'" name="ktext">
                            <input type="hidden" value="'.$row1['id'].'" name="sku_number">
							<input type="hidden" value="'.$row1['preis'].'" name="item_price">
							<input type="hidden" value="'.$row1['image'].'" name="image">
							<input type="hidden" value="'.USERNAME.'" name="kaufer">
							<input type="hidden" value="1" name="verkauft">
							<input type="hidden" value="'.USEREMAIL.'" name="tel">
                            <input type="hidden" value="C" name="fill_basket">
                            <input type="hidden" value="flohmarkt.php?cat='.$cat.'" name="return_url">
                            <button style="cursor:pointer"title="Ab in den Warenkorb"name="submit" type="submit">
                            <img style="width:48px" src="system/comnav/kaufen.png">
                            </button>
                            
													</form>
warenkorb show.php

PHP:
// Keep sessions alive when user uses back button of browser
session_cache_limiter('public');
// Start a session to catch the basket
session_start();
// Fill the Cart with products from the basket
  $count_items = count($_SESSION['shopping_cart']); // Count number of different products in basket
  $array = $_SESSION['shopping_cart'];
  // Show products in a sequence starting at 1
  $cart_count = 1;
  // Set the header
  $text2 .= "
	<div align='center'>	
	<table width='98%'border='1' cellspacing='0' cellpadding='0'>
  <tr>
  <td class='forumheader'width='10%'>".FLOH_SHOP_21."</td>
  <td class='forumheader'width='53%'>".FLOH_SHOP_22."</td>
  <td class='forumheader'width='10%'>".FLOH_SHOP_23."</td>
  
  <td class='forumheader'width='5%'>".FLOH_SHOP_26."</td>
  
  <td class='forumheader'>".FLOH_SHOP_28."</td>
  <td class='forumheader'>Edit</td>
  </tr>
  ";

  // For each product in the shopping cart array write PayPal details
    foreach($array as $id => $item) {
    // Debug info
    // echo "{$id}, {$item['ktext']}, {$item['quantity']}, {$item['item_price']}, {$item['sku_number']}, {$item['shipping']}, {$item['shipping2']}, {$item['handling']}";
    $display_sku_number = $item['sku_number'];
    if ($item['sku_number'] == "") {
      $display_sku_number = "&nbsp;"; // Force a space in the cell for proper border display
    }
    $text2 .= "
    <br />
    <tr>
    <td class='forumheader'>".$display_sku_number."</td>
    <td class='forumheader'>".$item['ktext']."</td>
    <td class='forumheader'>".$unicode_character_before." ".$item['item_price']." ".$unicode_character_after."&euro;</td>
    <td class='forumheader'>".$item['quantity']."</td>
    <td class='forumheader'><div align='center'><img src='".$item['image']."' border='noborder'style='width:48px'></div></td>
    
    <td class='forumheader'>
    <a href='show_basket.php?delete.".$id."'><img src='".e_IMAGE."admin_images/delete_16.png' border='noborder' alt='".FLOH_SHOP_29."' title='".FLOH_SHOP_29."'></a>&nbsp;
    <a href='show_basket.php?add.".$id."'><img src='".e_IMAGE."admin_images/up.png' border='noborder' alt='".FLOH_SHOP_33."' title='".FLOH_SHOP_33."'></a>&nbsp;
    ";

    // If quantity equals 1 don't show minus option
    if ($item['quantity'] > 1) {
    $text2 .= "
    <a href='show_basket.php?minus.".$id."'><img src='".e_IMAGE."admin_images/down.png' border='noborder' alt='".FLOH_SHOP_34."' title='".FLOH_SHOP_34."'></a>
    ";
    }

    $text2 .= "
    </td>
    
    </tr>
    ";
    $cart_count++;
  }

  $text2 .= "
  </table>
  <table>
  <tr>
  <td ><a class='forumheader'href=show_basket.php?reset>".FLOH_SHOP_30."</a> </td>
  <td width='80%'style='text-align:right'>".show_checkout()."</td>
  </tr></table>
  <div style='text-align:left'>
  <br />".FLOH_SHOP_16." ".$sum_quantity."
  <br />".FLOH_SHOP_17." ".$count_items."
  <br />".FLOH_SHOP_18." ".$unicode_character_before." ".$sum_price." ".$unicode_character_after." &euro;
  <br />".FLOH_SHOP_19." ".$unicode_character_before." ".$average_price." ".$unicode_character_after."&euro;
  ";
  if ($sum_shipping_handling > 0) {
  $text2 .= "
    <br />".FLOH_SHOP_20." ".$unicode_character_before." ".$sum_shipping_handling." ".$unicode_character_after;
  }

  // Add the checkout button produced by function show_checkout
 $text2 .= "</div></div>

 ";
 
Zuletzt bearbeitet:
Du hast doch z.B. mit den input Feld "kaufer" schon ein Array gebildet. jetzt mußt du nur noch die Postvariable mit foreach durchlaufen.

Beispiel:

foreach ($_POST['kaufer'] as $val ){
$rtn = $mysql->db_Update("kaufer='$val' WHERE id='$display_sku_number'");

}
 
hallo,

leider geht es nicht hab auch dein code mal um die db floh erweitert geht auch nicht

PHP:
$verkauft = ( @get_magic_quotes_gpc() ) ? $_POST['verkauft'] : @addslashes($_POST['verkauft']);
$kaufer = ( @get_magic_quotes_gpc() ) ? $_POST['kaufer'] : @addslashes($_POST['kaufer']);
$tel = ( @get_magic_quotes_gpc() ) ? $_POST['tel'] : @addslashes($_POST['tel']);
/* DB Update */
$mysql = new db();
$mysql->db_Connect($mySQLserver,$mySQLuser,$mySQLpassword,$mySQLdefaultdb);
foreach ($_POST['kaufer'] as $val ){
$rtn = $mysql->db_Update("floh","kaufer='$val' WHERE id='$display_sku_number'");
}
foreach ($_POST['verkauft'] as $val ){
$rtn = $mysql->db_Update("floh","verkauft='$val' WHERE id='$display_sku_number'");
} 
foreach ($_POST['tel'] as $val ){
$rtn = $mysql->db_Update("floh","tel='$val' WHERE id='$display_sku_number'");
}

hast du noch andere tips ? was mach ich falsch

er trägt immer nur 1 in die datenbank
 
so werden die daten in den warenkorb gesammelt und diese sollen in die datenbank

PHP:
// Display check out button
	$f_text .= "
	<form target='' action='' method='post'>
		
    ";

  // Fill the Cart with products from the basket
  $count_items = count($_SESSION['shopping_cart']); // Count number of different products in basket
  $array = $_SESSION['shopping_cart'];
 // multiple products in a sequence starting at 1
  $cart_count = 1;
  
  // For each product in the shopping cart array
  foreach($array as $id => $item) {
      $f_text .= "      
      
       <input type='hidden' name='kaufer' value='".$item['kaufer']."'>
      <input type='hidden' name='verkauft' value='".$item['verkauft']."'>
      ";
      $cart_count++;
  }

  

 
    if ($always_show_checkout == 0) {
    // When there are items in the shopping cart, display 'Go to checkout' button
			if ($_SESSION['sc_total']['items'] > 0) {
			  // Only show 'Go to checkout' if total amount is above minimum amount
        if ($_SESSION['sc_total']['sum'] > $minimum_amount) {
					$f_text .= "
            <input class='button' name='kauf'type='submit' value='"._SHOP_09."'>
					</form>
					<br />";
				} else { // Minimum amount has not been reached; inform the shopper
				  $f_text .= _SHOP_36." : ".number_format($minimum_amount, 2, '.', '')." <br />
          ".SHOP_37." : ".number_format(($minimum_amount - $_SESSION['sc_total']['sum']), 2, '.', '')." <br />";
				}
      } else { // RC7 Fix for proper closing the form tag
        $f_text .= "</form><br />";
      }
    } else { // RC6 Fix for proper closing the form tag
      $f_text .= "</form><br />";
    }
  
  // in case setting always display checkout button is on
  //else
  if ($always_show_checkout == 1) {
			$f_text .= "
        <input class='button' name=' kauf ' type='submit' value='".SHOP_09."'>
			</form>
			<br />";
 
Zuletzt bearbeitet:
habs auch so versucht :

Input Bereich:
PHP:
foreach($array as $id => $item) {
      $f_text .= "      
      <input type='hidden' name='item_number[]' value='".$item['sku_number']."'>
       <input type='hidden' name='kaufer[]' value='".$item['kaufer']."'>
      <input type='hidden' name='verkauft[]' value='".$item['verkauft']."'>
      ";
      $cart_count++;
  }

db Update:

PHP:
$arr_values['verkauft'] = $_POST['verkauft'];
$arr_values['kaufer'] = $_POST['kaufer']; 
$arr_values['tel'] = $_POST['tel']; 
$arr_values['item_number'] = $_POST['item_number'];
 
	$mysql = new db();
  $mysql->db_Connect($mySQLserver,$mySQLuser,$mySQLpassword,$mySQLdefaultdb);

//  bilden  einer kleinen schleife
for($i=0;$i<count($arr_values['verkauft']);$i++){
    $verkauft = $arr_values['verkauft'][$i];
    $kaufer = $arr_values['kaufer'][$i]; 
    $tel = $arr_values['tel'][$i]; 
    $item_number = $arr_values['item_number'][$i]; 

//db update

 $rtn = $mysql->db_Update("floh","verkauft='$verkauft',kaufer='$kaufer',tel='$tel' WHERE id='$display_sku_number'");

}


aber wieder nix er trägt nur einen ein
 
Zuletzt bearbeitet:
Hallo,

wenn ich das
PHP:
print_r($_SESSION['shopping_cart']);

mal anzeigen lasse hab ich diese anzeige :

Array ( [115] => Array ( [ktext] => blummenvase [quantity] => 1 [item_price] => 22.00 [sku_number] => 115 [image] => images/produkt/Tulips.jpg [kaufer] => hups [verkauft] => 1 [tel] => email ) [117] => Array ( [ktext] => blummenvase [quantity] => 2 [item_price] => 22.00 [sku_number] => 117 [image] => images/produkt/Tulips.jpg [kaufer] => hups [verkauft] => 1 [tel] => email ) )

nur wie baue ich nun den mysql Update string ****
 
Zuletzt bearbeitet:
versteh ich leider nicht
was soll bl und blubb sein

mysql_query("UPDATE floh SET verkauft= "bla", kaufer="blubb",tel="?" WHERE id={$id}")

und woher kommt $id ****
 
Danke hab es so gelöst

ist das wegen sql injektion ok oder muss ich noch was ändern ****

PHP:
if (isset( $_POST['kauf'] ))
{

	
foreach($array as $id => $item) 
    {$id=$item['sku_number'];
		$verkauft=$item['verkauft'];
         $sql = "UPDATE e107_floh SET verkauft = '$verkauft'  WHERE id = '".$id."'";
        $result = mysql_query($sql) OR die(mysql_error());
    } 	
foreach($array as $id => $item) 
    {$kaufer=$item['kaufer'];
         $sql = "UPDATE e107_floh SET kaufer = '$kaufer'  WHERE id = '".$id."'";
        $result = mysql_query($sql) OR die(mysql_error());
    } 	
foreach($array as $id => $item) 
    {$tel=$item['tel'];
         $sql = "UPDATE e107_floh SET tel = '$tel'  WHERE id = '".$id."'";
        $result = mysql_query($sql) OR die(mysql_error());
    } 

echo '<form><fieldset><legend>WARENKORB</legend><div align="center"style="font-size:15px;font-weight:bold">Herzlichen Dank für Ihre Bestellung</fieldset></form>';

unset($_SESSION['shopping_cart']);
unset($_SESSION['sc_total']);
  
 exit;		
	}
 
Zurück