2015-03-19 85 views
0

我有以下代碼:插入多行的MySQL

<?php 
session_start(); 
include_once("config.php"); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>View shopping cart</title> 
<link href="style/style.css" rel="stylesheet" type="text/css"></head> 
<body> 
<br> 
<div id="books-wrapper"> 
<!-- #content to center the menu --> 
<div id="content"> 
<!-- This is the actual menu --> 
<ul id="darkmenu"> 
<li><a href="home.php">Home</a></li> 
<li><a href="catalogue.php">Catalogue</a></li> 
<li><a href="search.php">Search</a></li> 
<li><a href= "view_cart.php">Cart</a></li> 
<li><a href="#">Orders</a></li> 
</ul> 
<div id = "welcome" > 
Welcome, <?=$_SESSION['login_user']?>! <br> <a href="logout.php">Logout</a> 
</div> 
</div> 
<br><br> 
<h1 id = "mainHeader" >View Cart</h1> 
<br> 
<div class="view-cart"> 
<?php 
$current_url = base64_encode($url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 
if(isset($_SESSION["books"])) 
{ 
$total = 0; 
echo '<form method="post" action="">'; 
echo '<ul>'; 
$cart_items = 0; 
foreach ($_SESSION["books"] as $cart_itm){ 
$ISBN = $cart_itm["ISBN"]; 
$results = $mysqli->query("SELECT Title,BookDesc,Price FROM books WHERE ISBN='$ISBN'"); 
$obj = $results->fetch_object(); 
echo '<li class="cart-itm">'; 
echo '<span class="remove-itm"><a href="cart_update.php?removep='.$cart_itm["ISBN"].'&return_url='.$current_url.'">×</a></span>'; 
echo '<div class="p-Price">'.$currency.$obj->Price.'</div>'; 
echo '<div class="book-info">'; 
echo '<h3>'.$obj->Title.' (ISBN :'.$ISBN.')</h3> '; 
echo '<div class="p-quantity">Quantity : '.$cart_itm["quantity"].'</div>'; 
echo '<div>'.$obj->BookDesc.'</div>'; 
echo '</div>'; 
echo '</li>'; 
$subtotal = ($cart_itm["Price"]*$cart_itm["quantity"]); 
$total = ($total + $subtotal); 
echo '<input type="hidden" name="item_name['.$cart_items.']" value="'.$obj->Title.'" />'; 
echo '<input type="hidden" name="item_code['.$cart_items.']" value="'.$ISBN.'" />'; 
echo '<input type="hidden" name="item_desc['.$cart_items.']" value="'.$obj->BookDesc.'" />'; 
echo '<input type="hidden" name="item_quantity['.$cart_items.']" value="'.$cart_itm["quantity"].'" />'; 
$cart_items ++; 
} 
echo '</ul>'; 
echo '<span class="check-out-txt">'; 
echo '<strong>Total : '.$currency.$total.'</strong> '; 
echo '</span>'; 
echo '<button name="submit_btn" class="save_order">Save Order</button>'; 
echo '</form>'; 
if(isset($_POST['submit_btn'])){ 
$insquery = "INSERT INTO `pending_orders` (`OrderNo`,`BookName`,`Quantity`,`TotalPrice`,`ISBN`,`StudentID`) VALUES (NULL, '" . $obj->Title . "', '" . $cart_itm['quantity'] . "', '" . $total . "', '" . $ISBN . "', '" . $_SESSION['login_user'] . "');"; 
$stmt = $mysqli->prepare($insquery); 
$stmt->execute(); 
} 
} 
?> 
</div> 
</div> 
</body> 
</html> 

的代碼應該是一個客戶書爲了保存到數據庫中,它完美罰款一本書。第76到81行有插入語句。然而,如果該人已經購買了兩本書,那麼只有最後一本書被添加到數據庫中。添加屏幕截圖:

這就是它在我的網站上的樣子。正如你所看到的人已經選擇購買兩本書: http://postimg.org/image/3kj1gvytx/ 然而,這是我在我的phpmyadmin網站獲得: http://postimg.org/image/k85hs56xj/ 我們可以看到,只有第二本書(生物學)被存儲在數據庫中。以及這兩本書的總數

任何想法如何我可以解決這個問題,並存儲這兩本書。

感謝

+0

在這種情況下,你可以使用Ajax的異步請求添加項目,而不刷新頁面插入語句。 – DDeme 2015-03-19 12:38:48

+0

我該怎麼做?我從來沒有真正使用過Ajax – resontant81 2015-03-19 12:39:51

+0

等一下(我會在這裏更新)... – DDeme 2015-03-19 12:52:44

回答

0

當你不知道的Ajax,你可以做這樣的事情: 1)重置$結果數組,再次對MySQL查詢選擇項目。 2)用while循環將每個選定的值插入到DB中。

reset($result); 
while($row=mysqli_fetch_array($result)) 
{ 
    $ins = mysqli_query($con, "Here goes insert statement for each"); 
} 

編輯

$ISBN = $cart_itm["ISBN"]; 
$con = mysqli_connect("localhost","root","","yourbasename"); 
$result = mysqli_query($con, "SELECT Title,BookDesc, Price FROM books  
WHERE ISBN='$ISBN'"); 
while($row=mysqli_fetch_array($result) 
{ 
    $insert = mysqli_query($con, "INSERT....."); 
} 
+0

我假設id把代碼放在if(isset($ _ POST ['submit_btn'])){ line? – resontant81 2015-03-19 12:58:58

+0

是的,這是你應該把這個代碼放在哪裏。 – DDeme 2015-03-19 13:00:02

+0

獲得一個錯誤,說出現意外{在第79. – resontant81 2015-03-19 13:01:58

0
<?php 
session_start(); 
include_once("config.php"); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>View shopping cart</title> 
<link href="style/style.css" rel="stylesheet" type="text/css"></head> 
<body> 
<br> 
<div id="books-wrapper"> 
<!-- #content to center the menu --> 
<div id="content"> 
<!-- This is the actual menu --> 
<ul id="darkmenu"> 
<li><a href="home.php">Home</a></li> 
<li><a href="catalogue.php">Catalogue</a></li> 
<li><a href="search.php">Search</a></li> 
<li><a href= "view_cart.php">Cart</a></li> 
<li><a href="#">Orders</a></li> 
</ul> 
<div id = "welcome" > 
Welcome, <?=$_SESSION['login_user']?>! <br> <a href="logout.php">Logout</a> 
</div> 
</div> 
<br><br> 
<h1 id = "mainHeader" >View Cart</h1> 
<br> 
<div class="view-cart"> 
<?php 
$current_url = base64_encode($url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 
if(isset($_SESSION["books"])) 
{ 
$total = 0; 
echo '<form method="post" action="">'; 
echo '<ul>'; 
$cart_items = 0; 
foreach ($_SESSION["books"] as $cart_itm){ 
$ISBN = $cart_itm["ISBN"]; 
$results = $mysqli->query("SELECT Title,BookDesc,Price FROM books WHERE ISBN='$ISBN'"); 
$obj = $results->fetch_object(); 
echo '<li class="cart-itm">'; 
echo '<span class="remove-itm"><a href="cart_update.php?removep='.$cart_itm["ISBN"].'&return_url='.$current_url.'">×</a></span>'; 
echo '<div class="p-Price">'.$currency.$obj->Price.'</div>'; 
echo '<div class="book-info">'; 
echo '<h3>'.$obj->Title.' (ISBN :'.$ISBN.')</h3> '; 
echo '<div class="p-quantity">Quantity : '.$cart_itm["quantity"].'</div>'; 
echo '<div>'.$obj->BookDesc.'</div>'; 
echo '</div>'; 
echo '</li>'; 
$subtotal = ($cart_itm["Price"]*$cart_itm["quantity"]); 
$total = ($total + $subtotal); 
echo '<input type="hidden" name="itemname_['.$cart_items.']" value="'.$obj->Title.'" />'; 
echo '<input type="hidden" name="itemcode_['.$cart_items.']" value="'.$ISBN.'" />'; 
echo '<input type="hidden" name="itemdesc_['.$cart_items.']" value="'.$obj->BookDesc.'" />'; 
echo '<input type="hidden" name="itemquantity_['.$cart_items.']" value="'.$cart_itm["quantity"].'" />'; 
echo '<input type="hidden" name="total_['.$cart_items.']" value="'.$total.'" />'; 
$cart_items ++; 
} 
echo '</ul>'; 
echo '<span class="check-out-txt">'; 
echo '<strong>Total : '.$currency.$total.'</strong> '; 
echo '</span>'; 
echo '<button name="submit_btn" class="save_order">Save Order</button>'; 
echo '</form>'; 
if(isset($_POST['submit_btn'])){ 
    $item_array = array(); 


    foreach($_POST as $key => $value) { 
// echo "POST parameter '$key' has '$value'; 
     $pieces = explode("_",$key) 
     if(strstr($pieces[0] == 'itemname') 
     { 
      $item_array[$pieces[1]]['BookName'] = $value; 

     } 
     if(strstr($pieces[0] == 'itemcode') 
     { 
      $item_array[$pieces[1]]['ISBN'] = $value; 
     } 

     if(strstr($pieces[0] == 'itemquantity') 
     { 
      $item_array[$pieces[1]]['Quantity'] = $value; 
     } 
     if(strstr($pieces[0] == 'total') 
     { 
      $item_array[$pieces[1]]['TotalPrice'] = $value; 
     } 
} 

$insquery = "INSERT INTO `pending_orders` (`OrderNo`,`BookName`,`Quantity`,`TotalPrice`,`ISBN`,`StudentID`) VALUES "; 
foreach($item_array as $row) 
{ 
    $insquery .= "(NULL, '" . $row['BookName'] . "', '" . $row['Quantity'] . "', '" .$row['TotalPrice']. "', '" . $row['ISBN'] . "', '" . $_SESSION['login_user'] . "'),"; 
} 

$insquery = substr($insquery, 0, -1); 
$stmt = $mysqli->prepare($insquery); 
$stmt->execute(); 

    foreach($_POST as $row) 
$insquery = "INSERT INTO `pending_orders` (`OrderNo`,`BookName`,`Quantity`,`TotalPrice`,`ISBN`,`StudentID`) VALUES (NULL, '" . $obj->Title . "', '" . $cart_itm['quantity'] . "', '" . $total . "', '" . $ISBN . "', '" . $_SESSION['login_user'] . "');"; 
$stmt = $mysqli->prepare($insquery); 
$stmt->execute(); 
} 
} 
?> 
</div> 
</div> 
</body> 
</html> 

你形成像上面