##前提
ECサイト作成中(課題)
カートの処理をtableではなく、cookieで実現しています。
商品選択時に、商品IDと数量をcookieに格納し(上限10件)
・買い物継続(cookieに格納しリダイレクト):完了
・購入処理へ(cookieに格納し、特定の情報があた場合、取得表示):ここ!
##現状
cookieに値を格納(以下の形)で実施した場合の、値の取り出し方
if(!isset($_COOKIE["cartdata1"])){ setcookie('quantity1',$_POST['cnt']); setcookie('cartdata1',$_SESSION['product_id']); header("Location: cart.php"); exit(); }else if(!isset($_COOKIE["cartdata2"])){ setcookie('quantity2',$_POST['cnt']); setcookie('cartdata2',$_SESSION['product_id']); header("Location: cart.php"); exit(); }else if(!isset($_COOKIE["cartdata3"])){ setcookie('quantity3',$_POST['cnt']); setcookie('cartdata3',$_SESSION['product_id']); header("Location: cart.php"); exit(); }else if(!isset($_COOKIE["cartdata4"])){ setcookie('quantity4',$_POST['cnt']); setcookie('cartdata4',$_SESSION['product_id']); header("Location: cart.php"); exit(); }else if(!isset($_COOKIE["cartdata5"])){ setcookie('quantity5',$_POST['cnt']); setcookie('cartdata5',$_SESSION['product_id']); header("Location: cart.php"); exit(); // ~10件分省略 }else if(!isset($_COOKIE["cartdata11"])){ header("Location: cartmax.php"); exit(); }
上記の様に、格納しています。
if (isset($_SESSION["product_id"])) { //※1 $pid = $_SESSION["product_id"]; try{ $dbh = new PDO($dsn, $user, $password); echo "接続成功"; $sql = 'SELECT * FROM product'; $statement = $dbh -> query($sql); $sql = "SELECT * FROM product WHERE product_id = '$pid'"; //※2 $statement = $dbh -> query($sql); //レコード件数取得 $row_count = $statement->rowCount(); while($row = $statement->fetch()){ $rows[] = $row; } /* foreach ($statement as $row) { $rows[] = $row; } */ //データベース接続切断 $dbh = null; } catch (PDOException $e){ print('Error:'.$e->getMessage()); die(); } }
##疑問点
※1
現在は特定のpidで判定していますが、
pid(商品ID)で取り出す際に、cookieの中の情報(存在している。cartdata1~10)
を指定しその値をもって商品テーブルから、取得表示させたいです。
回答2件
あなたの回答
tips
プレビュー