2012-03-30 105 views
-2

嗨我正在嘗試爲項目創建購物網站。我有一個包含項目的數據庫中的表。我設法從表中讀取。除了每行之外,我還添加了一個複選框。我希望用戶選擇一個或多個項目並按提交按鈕。當他們這樣做時,訂單的細節應該合併並添加到另一個表中。我怎樣才能做到這一點?如何從mySQL表中選擇行併合並(PHP)

以下是顯示項目的代碼。表中的每一行都包含一個複選框。還有一個提交按鈕。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <title>Shopping</title> 
</head> 
<body> 
<form action='buy.php' method='post'> 
<input type='submit' value='Submit' /> 
</form> 
<h1>Buy</h1> 
<?php // Script 12.7 - shopping.php 

$db = mysql_connect('localhost', '#####', '#####'); 
mysql_select_db('shopping', $db); 

$query = 'SELECT * FROM Items'; 

if ($r = mysql_query($query, $db)) { 
    print "<table>"; 
    while ($row = mysql_fetch_array($r)) { 
     print 
     "<tr> 
     <td>{$row['ID']}</td> 
     <td>{$row['Name']}</td> 
     <td>{$row['Cost']}</td> 
     <td><input type='checkbox' name='buy' value='buy' /></td> 
     </tr>"; 
    } 
    print "</table>"; 

} else { 
    print '<p style="color: blue">Error!</p>'; 
} 

mysql_close($db); // Close the connection. 

?> 
</body> 
</html> 

它導航到的頁面(buy.php)目前是空的,這就是我需要幫助。我想要將訂單的詳細信息輸入到下表中:

Table name: order_details 
fields: ID, Items, Total_Cost 

我希望ID顯然是一個隨機數。我希望項目列合併項目的ID。最後,我希望Total_cost列顯示所有選定項目的總和。

回答

0

您的名稱和值設置爲「購買」的複選框是一個糟糕的開始。無法識別處理此表單的腳本中的選中項目。該名稱應更改爲name='buy[{$row['ID']}]',以便您可以檢索所選項目的ID。你的表單應該包裹所有的複選框(整個表格)。

您的order_details表是一個完美的例子,說明如何不做。多值領域由於種種原因是邪惡的。在典型的訂單結構中,您可能有orders(id, user_id, created, status)order_items(id, order_id, item_id, quantity, unit_price)。這是一個天真但可用的結構。總訂單價值可以根據數量和單位價格實時計算。

您需要嘗試解決方案,然後詢問具體問題,而不是要求我們爲您編寫整個解決方案。在Google上快速搜索「php mysql購物車教程」會返回大量關於此主題的教程。