2008/8/26 久米
最も基本的な情報だけのデータベースを作ります。
注)shopping/img/のフォルダの中に画像ファイルをいれておく
cart.php |
<?php //買い物カートスクリプト(その1)セッション変数更新cart.php session_start(); /*********************** * 購入あるいは購入取消によって * 下記セッション変数を更新するスクリプト * $_SESSION['buyid']:購入商品のidの配列 * $_SESSION['buynm']:上記商品をいくつ購入したかの個数の配列 ***********************/ //購入した場合 if(isset($_GET['id'])){ if(!is_numeric($_GET['id'])) exit("アクセスエラーです。もう一度最初からお願いします。"); $id=$_GET['id']; add_buy_session($id); //削除した場合 }else if(isset($_GET['did'])){ if(!is_numeric($_GET['did'])) exit("アクセスエラーです。もう一度最初からお願いします。"); $did=$_GET['did']; delete_buy_session($did); } header("Location: cart2.php"); exit(); /************************************* * セッション変数に購入品を保存する関数 **************************************/ function add_buy_session($id){ $buyid[0]=0;//購入商品のidが入る配列 $buynm[0]=0;//上記商品をいくつ購入したかの個数が入る配列 //もし現在、購入したものがあれば if(isset($_SESSION['buyid'])){ $buyid=$_SESSION['buyid']; $buynm=$_SESSION['buynm']; $b=count($buyid); $addflag=false; for($i=0;$i<$b;$i++){ if($buyid[$i]==$id){ $buynm[$i]++; $addflag=true; break; } } if(!$addflag){ $buyid[$b]=$id; $buynm[$b]=1; } //現在、購入していなければ }else { $buyid[0]=$id; $buynm[0]=1; } //$_SESSIONの更新 $_SESSION['buyid']=$buyid; $_SESSION['buynm']=$buynm; } /************************************* * セッション変数から購入取消品を削除する関数 **************************************/ function delete_buy_session($did){ $buyid[0]=0;//購入商品のidが入る配列 $buynm[0]=0;//上記商品をいくつ購入したかの個数が入る配列 //もし現在、購入したものがあれば if(isset($_SESSION['buyid'])){ $buyid_old=$_SESSION['buyid']; $buynm_old=$_SESSION['buynm']; $b=count($buyid_old); for($i=0;$i<$b;$i++){ if($buyid_old[$i]==$did){ $buynm_old[$i]--; break; } } $k=0; for($i=0;$i<$b;$i++){ if($buynm_old[$i]!=0){ $buyid[$k]=$buyid_old[$i]; $buynm[$k]=$buynm_old[$i]; $k++; } } } //$_SESSIONの更新 if($buynm[0]!=0){//もし購入商品があれば $_SESSION['buyid']=$buyid; $_SESSION['buynm']=$buynm; }else{//購入している商品がなければ $_SESSION=array(); session_destroy(); } } ?> |
cart2.php |
<?php //買い物カートスクリプト(その2)表示cart2.php session_start(); require_once($_SERVER['DOCUMENT_ROOT']."/kume/common/db_value.php"); //初期化 $buyid[0]=0;//購入商品のidが入る配列 $buynm[0]=0;//上記商品をいくつ購入したかの個数が入る配列 $total=0;//購入金額の合計 //セッション変数を読み取り、 //もし現在、購入したものがあれば配列に代入 if(isset($_SESSION['buyid'])){ $buyid=$_SESSION['buyid']; $buynm=$_SESSION['buynm']; } /*********************** * * 商品名、価格(円)、個数の表$mの生成 * と合計金額$totalの計算 * ***********************/ if($buynm[0]!=0){ $where=" WHERE 0"; for($i=0;$i<count($buyid);$i++){ $where.=" OR id=".$buyid[$i]; } $con=mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); $sel=mysql_select_db($DBNAME, $con); $sql="SELECT * FROM shopping ".$where." ORDER BY price DESC"; $rst=mysql_query($sql, $con); $m="<table border='1' cellspacing='0' cellpadding='8'>"; $m.="<tr bgcolor='#CCCCCC'><td>商品名</td><td>価格(円)</td><td>個数</td><td> </td></tr>"; while($row=mysql_fetch_array($rst)){ $number=0; for($i=0;$i<count($buyid);$i++){ if($buyid[$i]==$row["id"]){ $number=$buynm[$i]; break; } } $m.="<td><a href='detail.php?id=".$row["id"]."' target='_blank'>".$row["name"]."</a></td>"; $m.="<td>".$row["price"]."</td>"; $m.="<td>".$number."</td>"; $m.="<td><a href='cart.php?did=".$row["id"]."'>削除</a></td></tr>"; $total+=$row["price"]*$number; } $m.="</table>"; mysql_free_result($rst); $cls=mysql_close($con); }else{ $m="現在カートの中にはなにもありません。m(_ _)m"; } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>ショップ</title> </head> <body> <?php print $m; print "<p>合計金額は <strong>".$total."</strong>円です</p>"; ?> </body> </html> |