##前提
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
プレビュー