2012-03-30 17 views
-2

こんにちは、私はプロジェクトのショッピングサイトを作成しようとしています。私はアイテムを含むデータベースにテーブルを持っています。私はテーブルから読むことができました。各行の横にチェックボックスを追加しました。ユーザーが1つまたは複数のアイテムを選択し、送信ボタンを押すようにします。彼らがこれを行うと、注文の詳細がマージされ、別のテーブルに追加されます。これどうやってするの?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)があるかもしれません。これは少しナイーブですが使用可能な構造です。総注文数量はquantityとunit_pricesに基づいてオンザフライで簡単に計算できます。

解決策を試してみる必要があります。解決策全体を書くように求めるのではなく、特定の質問をする必要があります。 "php mysqlショッピングカートのチュートリアル"をGoogleですばやく検索すると、このトピックに関する多くのチュートリアルが返されます。