2013-12-20 37 views
-2

我有以下代碼將用戶的訂單添加到數據庫。訂單以數組($ row)存儲,然後在while循環中將其設置爲單個變量,然後將其設置爲查詢。沒有顯示錯誤消息,但記錄未添加到MySQL數據庫。我認爲這個問題是大膽的。我已經看過其他幾個幫助主題,並嘗試過他們,但他們不會爲此工作。MySQLi查詢while循環不添加到數據庫

我對PHP相當陌生,所以請儘量在可能的情況下用簡單的英語保留答案。 謝謝,如果有人可以給我一個這個手。

<?php 

session_start(); 
?> 


<?php 



//db connect 

require('connect_db.php'); 

//define variables 

$id=$_SESSION['user_id']; 
$fn=$_SESSION['first_name']; 
$ln=$_SESSION['last_name']; 
$bank=$_POST['bank']; 
$ano=$_POST['account']; 
$sort=$_POST['sort_code']; 

//get order details 
**$qa="SELECT total, product, quantity, FROM orders WHERE user_id='$id'"; 

$ra=mysqli_query($dbc, $qa); 



while($row=mysqli_fetch_array($r, MYSQLI_ASSOC)) 
{ 
//insert to table 
$product=$row['product']; 
$quantity=$row['quantity']; 
$total=$row['total']; 
$qb="INSERT INTO order_contents(user_id, first_name, last_name, product, quantity, price, bank, account_no, sort_code) VALUES '$id', '$fn', '$ln', '$product', '$quantity', '$total', SHA1('$bank'), SHA1('$ano'), SHA1('$sort'))"; 

mysqli_query($dbc, $qb) or die(mysqli_error($dbc)); 
}** 



//clear db 

mysqli_query($dbc, "DELETE FROM orders WHERE user_id='$user_id'"); 


//mysql close 

mysqli_close($dbc); 


//redirect to thank you page 

header("Location:http://emsworthsailspares.net23.net/thanks.php"); 


?> 



<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
<title>Untitled 1</title> 
</head> 

<body> 
</body> 

</html> 
+0

您不需要打開/關閉php標籤兩次。只需在PHP的開頭執行<?php並在末尾執行 – dudemanbearpig

+0

您有一個錯字。 $ row = mysqli_fetch_array($ r,MYSQLI_ASSOC))應該是$ row = mysqli_fetch_array($ ra,MYSQLI_ASSOC)) – Dave

+0

感謝您的支持。已經做出了修改,並將在未來有用,但它尚未解決問題 – user3123891

回答

0

你會用一個INSERT INTO ... SELECT FROM查詢更好,減少了需要往返的一切通過客戶端:

INSERT INTO order_contents (user_id, first_name, last_name, product, quantity, price, bank, 
    account_no, sort_code) 
SELECT '$id', '$fn', '$ln', product, quantity, total, SHA1('$bank'), SHA1('$ano'), SHA1('$sort') 
FROM orders 
WHERE user_id=$id 

注意的動態和固定的混合物「 '查詢的選擇部分中的字段類型。

+0

感謝大家,現在所有人都在工作。 – user3123891

0

你把查詢到$ RA,然後嘗試使用$ R

$ra=mysqli_query($dbc, $qa); 



while($row=mysqli_fetch_array($ra, MYSQLI_ASSOC)) 
0

而($行= mysqli_fetch_array($ R,MYSQLI_ASSOC))

,則應該更換$ r到$ ra像上面的代碼一樣。

while($row=mysqli_fetch_array($ra, MYSQLI_ASSOC))