PHPでECサイトを作っています。カートに追加する機能を作っているのですがどれを選んでも一番最後の商品を選んだことになってしまいます。つまりvar_dump($rec['code'])の結果が一番最後の商品のコードになります。選んだ商品のコードを受け取るようにするにはどうすればいいですか。
index.php
1<?php 2require_once('./helpers/db_helper.php'); 3session_start(); 4if($_SERVER['REQUEST_METHOD']==='POST'){ 5 $num=$_POST['num']; 6 $procode=$_POST['procode']; 7 $_SESSION['cart']['product']=$num; 8} 9 10$cart=array(); 11if(isset($_SESSION['cart'])===TRUE){ 12 $cart=$_SESSION['cart']; 13} 14?> 15<!DOCTYPE html> 16<body> 17<ul> 18<?php $dbh=get_db_connect(); 19 foreach (fetch_product($dbh) as $rec): ;?> 20 <li class="col"> 21 <form action="" method="post" enctype="multipart/form-data"> 22 <img src="image/sofa.png" alt=""> 23 <p class="menu-text"><?=$rec['name'];?><br><b><?=$rec['price'].'円';?></b> 24 </p> 25 26 <select class="select-box" name="num"> 27 <?php for($i=1;$i<=10;$i++): ?> 28 <option value="<?php echo $i;?>"><?php echo $i;?></option> 29 <?php endfor;?> 30 </select><br> 31 <input type="hidden" name="procode" value="<?=$rec['code'];?>"> 32 <?php if(isset($cart[$rec['code']])===TRUE):?> 33 <p>追加済み</p> 34 <?php else: ?> 35 <input type="submit" class="cartin" value="カートに入れる"> 36 <?php endif;?> 37 </form> 38 </li> 39 <?php endforeach;?> 40 <?php var_dump($rec['code']);?> 41 42 </ul> 43 44</body> 45 46</html>
db_helper.php
1function fetch_staff($dbh){ 2 $sql="SELECT code, name, password FROM mst_staff WHERE 1"; 3 $stmt=$dbh->prepare($sql); 4 $stmt->execute(); 5 $rec=[]; 6 while($data=$stmt->fetch(PDO::FETCH_ASSOC)){ 7 $rec[]=$data; 8 } 9 return $rec; 10} 11function select_name($dbh, $pro_code){ 12 $sql="SELECT name FROM mst_product WHERE code=:code"; 13 $stmt=$dbh->prepare($sql); 14 $stmt->bindValue(':code', $pro_code, PDO::PARAM_INT); 15 $stmt->execute(); 16 $pro_name=[]; 17 $rec=$stmt->fetch(PDO::FETCH_ASSOC); 18 $pro_name=$rec['name']; 19 return $pro_name; 20 21} 22
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。