การเช็คและบวกเพิ่มจำนวนในตะกร้าสินค้าแบบ Session Array ในกรณีที่สินค้ากับออฟชั่นสินค้าตรงกับที่มีในตะกร้าสินค้าทำอย่างไรครับ
พอดีผมไปเจอตัวอย่างเว็บร้านค้า แล้วมีการเก็บค่าสินค้าในตะกร้าเป็นแบบ Session Array แล้วมีปัญหาตรงที่ถ้าสั่งสินค้าตัวเดิม จำนวนสินค้าก็จะถูกทับไป ไม่ได้ + เพิ่มจากจำนวนเดิม เลยอยากสอบถามวิธีการ + เพิ่มจำนวนสินค้าครับ
หากต้องการเช็คสินค้ากับออฟชั่นว่าเคยมีในตะกร้าหรือยัง ถ้าหากมีแล้วให้ + จำนวนที่สั่งเพิ่มเข้าไป จะต้องทำอย่างไรครับ
insert_cart.php
<?php session_start();?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
//รับค่า
$id=$_REQUEST['id']; //รหัสสินค้า
$option=$_REQUEST['option']; //ขนาด/สีของสินค้า
$amount=$_REQUEST['amount']; //จำนวนที่สั่ง
//เชื่อมต่อฐานข้อมูล
include('connect.php');
$sql="SELECT product.id AS id, product.name AS name, product.price AS price, product.image AS image, product_option.id AS option_id, product_option.name AS `option` FROM product, product_option WHERE product.id=$id AND product_option.id=$option";
$result=mysql_query($sql)or die(mysql_error());
$row=mysql_fetch_array($result);
if(!isset($_SESSION['cart'])){$_SESSION['cart']=array();}
$_SESSION['cart'][$option]=array('id'=>$row['id'], 'name'=>$row['name'], 'image'=>$row['image'], 'price'=>$row['price'], 'option'=>$row['option'] ,'amount'=>$amount);
echo"<script>window.location='../cart.php';</script>";
?>
</body>
</html>
Tag : PHP, MySQL
Date :
2014-10-25 10:49:06
By :
pengbuts
View :
1691
Reply :
9
ถ้าเป็นผมมจะ เก็บ แบบนี้
Code (PHP)
if(!isset($_SESSION['cart'][$id][$option])){
$_SESSION['cart'][$id][$option][amount]+=$amount;
}else{
$sql="SELECT product.id AS id, product.name AS name, product.price AS price, product.image AS image, product_option.id AS option_id, product_option.name AS `option` FROM product, product_option WHERE product.id=$id AND product_option.id=$option";
$result=mysql_query($sql)or die(mysql_error());
$row=mysql_fetch_array($result);
$_SESSION['cart'][$id][$option]=array( 'name'=>$row['name'], 'image'=>$row['image'], 'price'=>$row['price'], 'option'=>$row['option'] ,'amount'=>$amount);
}
ประวัติการแก้ไข 2014-10-25 12:07:49 2014-10-25 12:08:42 2014-10-25 12:08:56
Date :
2014-10-25 12:07:18
By :
gaowteen
ขอลองดูก่อนนะครับ นำไปใช้กับของเดิมจะมีปัญหาอะไรไหม
Date :
2014-10-25 17:27:20
By :
pengbuts
อันนี้ส่วนของตะกร้าผม ลองคลิกซื้อแล้ว ค่ามันไม่ส่งมาอะครับ ต้องแก้ตรงไหนบ้างครับ
Code (PHP)
<?php
if(!empty($_SESSION['cart'])){$cart=$_SESSION['cart'];
if(sizeof($cart)>0){
?>
<form action="process/cart_update.php" method="post">
<table class="list" width="100%" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#e5e5e5">
<tr>
<th width="40" align="center" bgcolor="#fafafa">ลบ</th>
<th width="100" align="center" bgcolor="#fafafa">ภาพสินค้า</th>
<th align="center" bgcolor="#fafafa">รายการสินค้า</th>
<th width="65" align="center" bgcolor="#fafafa">ราคา</th>
<th width="65" align="center" bgcolor="#fafafa">จำนวน</th>
<th width="75" align="center" bgcolor="#fafafa">ราคารวม</th>
</tr>
<?
$i=0;
$sum=0;
$quantity=0;
foreach($cart as $id=>$item){
?>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input class="form" type="checkbox" name="remove[]" value="<?=$id?>" />
</td>
<td align="center" bgcolor="#FFFFFF">
<a href="product.php?product=<?php echo $item['id']?>" target="_blank"><img src="product/<?=$item['image']?>" width="90" border="0"/></a>
</td>
<td align="center" bgcolor="#FFFFFF"><?=$item['name']?><br/><?=$item['option']?></td>
<td align="center" bgcolor="#FFFFFF"><?=number_format($item['price'])?></td>
<td align="center" bgcolor="#FFFFFF">
<a href="javascript:;"onclick="del('<?=$i+1?>')" style="display:block; margin-bottom:5px;"><img src="images/icon-minus.gif" border="0"/></a>
<input class="form" style="width:20px; text-align:center;" name="amount[<?=$id?>]" type="text" id="<?=$i+1?>" value="<?=$item['amount']?>"/>
<a href="javascript:;" onclick="plus('<?=$i+1?>')" style="display:block;margin-top:5px;"><img src="images/icon-plus.gif" border="0" /></a>
</td>
<td align="right" bgcolor="#FFFFFF"><?=number_format($item['price']*$item['amount'])?></td>
</tr>
<?
$sum+=$item['price']*$item['amount'];
$quantity+=$item['amount'];
$i++;
}
?>
<tr>
<td colspan="5" align="right" style="background:#fafafa;">ราคารวม (บาท)</td>
<td style="font-size:16px;background:#fafafa;" align="right"><?=number_format($sum)?></td>
</tr>
</table>
</form>
<?php
}
}
else{
?>
<div align="center" style="color:#999; font-size:13px;">
ไม่มีสินค้าในตะกร้า<br/>
<input name="button" type="button" onclick="window.location='categories.php';" value="เลือกสินค้าต่อ" id="button_main"/></div>
<?php
}
?>
Date :
2014-10-25 18:40:04
By :
pengbuts
ช่วยชี้แนะด้วยครับๆ
Date :
2014-10-25 22:39:29
By :
pengbuts
เปลี่ยน typy buttomเปน submit แล้วเอา onclickออก เวลารับค่าอีกน้าอย่าลืมรับเปนpost ละ
Date :
2014-10-26 10:13:31
By :
gaowteen
ตรงส่วนนั้นคือตะกร้าสินค้าครับ อันนี้คือส่วนหน้าเลือกสินค้า
Code (PHP)
<form action="process/cart_insert.php" method="post" >
<span style="font-size:14px;">Color :</span>
<br />
<?
$sqlOption="SELECT * FROM product_option WHERE product_id=$_GET[product] AND name !='' ORDER BY id asc";
$resultOption=mysql_query($sqlOption)or die(mysql_error());
$numOption=mysql_num_rows($resultOption);
?>
<select name="option" style="width:200px; margin-top:3px;">
<?
for($i=1;$i<=$numOption;$i++){$rowOption=mysql_fetch_array($resultOption);
?>
<option value="<?=$rowOption['id']?>"><?=$rowOption['name']?></option>
<?
}
?>
</select>
<br />
<br />
<span style="font-size:14px;">Quantity :</span>
<div style="width:100px; text-align:center; margin-top:3px;">
<a href="javascript:;"onclick="del('<?=$i+1?>')" style="margin-bottom:5px;">
<img src="images/icon-minus.gif" border="0"/>
</a>
<input class="form" style="width:60px; text-align:center;" name="amount" type="text" id="<?=$i+1?>" value="1"/>
<a href="javascript:;" onclick="plus('<?=$i+1?>')" style="margin-top:5px;">
<img src="images/icon-plus.gif" border="0" />
</a>
</div>
<br />
<div id="main-price">
<div style="width:50px; float:left;">Price :</div>
<div style="width:400px; float:right; text-align:right;"><?=number_format($row['price'])?> ฿</div>
</div>
<input name="id" type="hidden" value="<?=$_GET['product']?>"/>
<input type="submit" value="เพิ่มลงตระกร้า / Add to Cart" id="cart_button"/>
</form>
Date :
2014-10-26 10:38:09
By :
pengbuts
ใครช่วยอธิบายการเช็ค และ การ + เพิ่มไปได้ไหมครับ
Date :
2014-10-26 22:36:55
By :
pengbuts
ดันๆๆ
Date :
2014-10-27 12:46:10
By :
pengbuts
ดันๆๆ
Date :
2014-10-28 07:59:04
By :
pengbuts
Load balance : Server 01