ミニショッピングカートを作成していますが、セッションからデータを取得してデータベースに書き込む方法があるかどうか疑問に思いました。ユーザーが選択したパーツは、カートに追加されることになっています。それらが完了したら、セッションに保存されたデータを取得し、それをデータベースに書き込んで、別のときにログインしたときにカートが残っているようにするにはどうすればよいですか?
<?php
if (isset($_GET['add'])) {
$quantity = mysql_query('SELECT partID, quantity, catergory FROM computerparts WHERE partID=' . mysql_real_escape_string((int) $_GET['add']));
while ($quantity_row = mysql_fetch_array($quantity)) {
if ($quantity_row['quantity'] != $_SESSION['index_' . $_GET['add']]) {
$_SESSION['index_' . $_GET['add']]+='1';
}
}
header('Location: ' . $page);
}
if (isset($_GET['delete'])) {
$_SESSION['index_' . (int) $_GET['delete']] = '0';
header('Location: ' . $page);
}
function cart() {
$total = "";
$sub = "";
foreach ($_SESSION as $name => $value) {
if ($value > 0) {
if (substr($name, 0, 6) == 'index_') {
$id = substr($name, 6, (strlen($name) - 6));
$get = mysql_query('SELECT partID, partName, price FROM computerparts WHERE partID=' . (int) $id);
while ($get_row = mysql_fetch_array($get)) {
$sub = $get_row['price'] * $value;
echo $get_row['partName'] . 'x' . $value . '@ £' . $get_row['price'] . '=' . $sub . '<a href="index.php?delete=' . $id . '">Delete</a> <br />';
}
}
$total += $sub;
}
}
if ($total == 0) {
echo 'Your cart is empty';
} else {
echo 'Total: £' . $total;
}
}
?>
簡単にするために、このWebサイトから機能を削除しました。アイテムを購入する必要はありません。ユーザーが必要なアイテムを選択するだけで、仕様を参照できるように、いつでもその情報にアクセスできるようになります。(仕様表)彼が選んだ項目はその表に書き込まれます。現在ログインしているuserIDを使用します。