در این آموزش نحوه ساخت سبد خرید با php را یاد خواهیم گرفت . سعی شده مثال ها برای درک بیشتر بسیار ساده ارایه بشه تا اینکه بتوانید بنابر نیاز خود تغییر و در پروژه ها استفاده کنید. در این مثال ما لیستی از محصولات را از دیتابیس نشان می دهیم . برای هر محصول می توانیم تعداد را انتخاب و به سبد خرید اضافه کنیم . آیتم های سبد خرید داخل session ذخیره می شوند . برای حذف محصولات از سبد خرید نیز کافیه که سیشن مورد نظر را unset کنیم.
افزودن محصولات به سبد خرید
اول از همه نیاز داریم که لیست محصولات را از دیتابیس خوانده و در خروجی نمایش بدیم . کد زیر محصولات را از دیتابیس استخراج و در حالت Grid View نمایش می هد. هر محصول یک دکمه “افزودن به سبد خرید” مخصوص به خودش را دارد
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $product_array = $db_handle->runQuery("SELECT * FROM tblproduct ORDER BY id ASC"); if (!empty($product_array)) { foreach($product_array as $key=>$value){ ?> <div class="product-item"> <form method="post" action="index.php?action=add&code=<?php echo $product_array[$key]["code"]; ?>"> <div class="product-image"><img src="<?php echo $product_array[$key]["image"]; ?>"></div> <div><strong><?php echo $product_array[$key]["name"]; ?></strong></div> <div class="product-price"><?php echo "$".$product_array[$key]["price"]; ?></div> <div><input type="text" name="quantity" value="1" size="2" /><input type="submit" value="افزودن به سبد خرید" class="btnAddAction" /></div> </form> </div> <?php }} ?> |
با کلیلک بر روی “افزودن به سبد خرید” , ما با استفاده از SESSION اطلاعت خرید را ذخیره میکنیم . در کد زیر از switch case برای افزودن محصول به سبد خرید استفاده کرده ایم .
اگر چندین بار یک محصول را به سبد خرید اضافه کنیم تعداد(quantity) آن افزایش خواهد یافت.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
case "add": if(!empty($_POST["quantity"])) { $productByCode = $db_handle->runQuery("SELECT * FROM tblproduct WHERE code='" . $_GET["code"] . "'"); $itemArray = array($productByCode[0]["code"]=>array('name'=>$productByCode[0]["name"], 'code'=>$productByCode[0]["code"], 'quantity'=>$_POST["quantity"], 'price'=>$productByCode[0]["price"])); if(!empty($_SESSION["cart_item"])) { if(in_array($productByCode[0]["code"],array_keys($_SESSION["cart_item"]))) { foreach($_SESSION["cart_item"] as $k => $v) { if($productByCode[0]["code"] == $k) { if(empty($_SESSION["cart_item"][$k]["quantity"])) { $_SESSION["cart_item"][$k]["quantity"] = 0; } $_SESSION["cart_item"][$k]["quantity"] += $_POST["quantity"]; } } } else { $_SESSION["cart_item"] = array_merge($_SESSION["cart_item"],$itemArray); } } else { $_SESSION["cart_item"] = $itemArray; } } break; |
حذف آیتم های سبد خرید
در این مثال ما به کاربران اجازه هر محصول دلخواه را از سبد خرید می دهیم. همچنین قابلیت حذف کلیه آیتم ها فقط با گزینه “empty cart” را اضافه میکنیم. با کلیک بر روی Remove Item با توجه به کد محصول مشخص را از سیشن پاک می کنیم. برای پاک کردن مقدار SESSION از تابع unset() استفاده کرده ایم. کد زیر عملیات پاک کردن سبد خرید را نشان میدهد :
1 2 3 4 5 6 7 8 9 10 11 |
case "remove": if(!empty($_SESSION["cart_item"])) { foreach($_SESSION["cart_item"] as $k => $v) { if($_GET["code"] == $k) unset($_SESSION["cart_item"][$k]); if(empty($_SESSION["cart_item"])) unset($_SESSION["cart_item"]); } } break; case "empty": unset($_SESSION["cart_item"]); break; |
از اسکریپت sql زیر برای ساخت جدول product و افزودن محصولات استفاده کنید
1 2 3 4 5 6 7 8 9 |
CREATE TABLE IF NOT EXISTS `tblproduct` ( `id` int(8) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `image` text NOT NULL, `price` double(10,2) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `product_code` (`code`) ) |
امیدوام از آموزش ساخت سبد خرید با php لذت برده باشید .
هرگونه مشکلی در پیاده سازی کد ها داشتید, از قسمت نظرات ارسال کنید . سریعا , پاسخگوی سوالات شما هستیم
موفق باشید.
سلام
من اومدم با کد شما یک جدول رنگ اضافه کردم با این کد رنگ هارو جدا کردم
while($row = $result->fetch_assoc()) {
$bjc = array_filter(explode(“_”, $row[‘color’]));
foreach($bjc as $value) {
echo(”.$value.”);
}
echo(”);
تو نمایش رنگ ها مشکلی نداشت وقتی خواستم محصول با یه رنگ جدید اضافه کنم رنگ قبلی رو اضافه میکرد مثلا رنگ آبی سلکت میکردم رنگ قبلی رو اضافه میکرد اگر امکانش هست راهنمایی بفرمایید
سلام. مقدار رنگ رو بعد انتخاب توسط کاربر داخل کوکی یا یه تگ ذخیره کنید تا بتونید ازش استفاده کنید
لینک دانلود خرابه
سلام. لینک دانلود اوکی هست