2012/7/10 久米
最も基本的な情報だけのデータベースを作ります。
注)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=mysqli_connect($DBSERVER, $DBUSER, $DBPASSWORD, $DBNAME);
$sql="SELECT * FROM shopping ".$where." ORDER BY price DESC";
$rst=mysqli_query($con, $sql);
$m="<table border='1' cellspacing='0' cellpadding='8'>";
$m.="<tr bgcolor='#CCCCCC'><td>商品名</td><td>価格(円)</td><td>個数</td><td> </td></tr>";
while($row=mysqli_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>";
mysqli_free_result($rst);
$cls=mysqli_close($con);
}else{
$m="現在カートの中にはなにもありません。m(_ _)m";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ショップ</title>
</head>
<body>
<?php
print $m;
print "<p>合計金額は <strong>".$total."</strong>円です</p>";
?>
</body>
</html>
|
コラム リンクの付け方 よく使うテクニック
|