آموزش ساخت سبد خرید در PHP

در این پست به آموزش ساخت سبد خرید در PHP خواهیم پرداخت . این برنامه کاربردی عمدا ساده و تا حد امکان کوچک درنظر گرفته شده است. شما می توانید آن را دانلود کرده و برای نیازهایتان شخصی سازی (customize) کنید. در این مثال، ما فهرستی را از محصولات پایگاه داده را نمایش می دهیم. در مورد هر محصول می توانیم مقدار و اندازه آنرا انتخاب کرده و به سبد خرید اضافه کنیم. اقلام سبد خرید در نشست ذخیره می گردند. با حذف آیتم های هر نشست ، می توانید سبد خرید را خالی کنید.

آموزش ساخت سبد خرید در PHP

آموزش ساخت سبد خرید در PHP

افزودن محصولات مختلف به سبد خرید

اول از همه ، باید با خواندن فهرست محصولات خود از پایگاه داده ، صفحه کاتالوگی از محصولات ایجاد کنیم. کد زیر ، فهرست محصولات پایگاه داده را بازیابی کرده و آنها را بصورت یک نمای گرید نمایش می دهد. هر محصول دارای گزینه «اضافه کردن به سبد خرید» برای گنجانیدن آن در سبد خرید می باشد.

<?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="Add to cart" class="btnAddAction" /></div>
	</form>
</div>
<?php }} ?>

با کلیک نمودن بر روی دکمه «افزودن به سبد خرید»، شناسه محصول انتخاب شده و با تعیین مقدار محصول ، می توانیم آن را به سبد خرید اضافه می کنیم. برای ذخیره آیتم ها در سبد خرید از PHP SESSION استفاده می کنیم. کد زیر گزینه دیگری را نشان می دهد که برای اضافه کردن محصولات به سبد خرید مورد استفاده قرار می گیرد. اگر چندین بار یک محصول را به سبد خرید اضافه کنیم، مقدار آیتم مورد نظر افزایش خواهد یافت.

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;

حذف یا پاکسازی آیتم ها از سبد خرید

در این قسمت آموزش ساخت سبد خرید در PHP ، به کاربران اجازه می دهیم تا با استفاده از لینک «حذف آیتم» در هر ردیف ، بتوانند آیتم ها را از سبد خرید حذف کنند. همچنین، به کاربران این توانایی را می دهیم با استفاده از گزینه “تخلیه سبد ” ، کل سبد خرید را پاکسازی کنند. به منظور پاکسازی آیتم خاصی از دوره زمانی خرید ، با کلیک کردن روی «حذف آیتم» می توانیم عمل پاکسازی را با توجه به کد آیتم انجام دهیم. می توانیم از تابعPHP  ()unset  برای پاکسازی نشست در سبد خرید استفاده می کنیم.

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 ذیل را وارد کرده و داده های خود را برای نمایش در صفحه کاتالوگ خود بارگذاری کنید.

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

دانلود پروژه

لینک های مرتبط :

کلاس طراحی وب مشهد

دوره آموزش Android

دریافت مشاوره حرفه ای و رایگان از متخصصین آکادمی برنامه نویسان مشهد

شما این فرصت را دارید، با تکمیل فرم زیر، قبل از انتخاب دوره آموزشی مناسب خود از مشاوره حرفه ای و رایگان متخصصین کلاس برنامه نویسی در مشهد استفاده کنید
  • این فیلد برای اعتبار سنجی است و باید بدون تغییر باقی بماند .

درباره‌ی برنامه نویسان

همچنین ببینید

نحوه ثبت نام و ورود به سایت با php

آموزش ساخت فرم ثبت نام با PHP و MySql

ثبت نام کاربر برای ورود به سیستم یکی از مهم ترین اجزا در هر سایت …

3 نظر

  1. چگونه قابلیت خواندن فونت فارسی بدهیم

    • سلام
      برای اینکار باید هم دیتابیس و هم اسکریپت برقراری ارتباط سایت با دیتابیس خود را تنظیم کنید.

      ۱٫ تنظیم دیتابیس:
      برای خواندن داده ها و فونت های فقط فارسی باید در phpmysql هنگام ایجاد بانک اطلاعاتی نوع ساختار دیتابیس خود را از قسمت Server connection collation برروی utf8_persian_ci تنظیم کنید و برای خواندن هم فارسی و هم خارجی بهتر هست نوع آن را برروی utf8_general_ci تنظیم کنید. البته گزینه دوم کامل تر و بهتر هست.

      ۲٫ تنظیم برقراری ارتباط سایت با دیتابیس:
      پس از نوشتن اسکریپت های اولیه و اصلی جهت ارتباط سایت با دیتابیس، استفاده و قرار دادن قطعه کد زیر هم برای برقراری ارتباط صحیح و بهتر سایت با دیتابیس های فارسی بسیار موثر است (توجه: این اسکریپت به روش برنامه نویسی رویه ای نوشته شده است. متغیر conn$ در آن هم یک متغیر با نام فرضی و بیانگر مثلا همان نام متغیر سرور شما است و به دلخواه شما قابل تغییر است):

      قطعه کد:
      ;mysqli_set_charset($conn, “utf8”)

      برای اطلاعات بیشتر به سایت http://www.w3schools.com مراجعه کنید.

      با تشکر

  2. سلام من محصول جدید خواستم اضافه کنم و یک ستون رنگ اضافه کردم اما هرکاری میکنم رنگ های جدید اضافه نمیشه مثلا رنگ آبی سلکت میکنم بعد یه رنگ دیگه، افزودن به سبد خریدو میزنم میزنه آبی دوباره به آبی اضافه میشه عوض اینکه ردیف اضافه کنه کد جداکردن رنگ ها اینه👇
    $sql = $oop->slc(‘tblproduct’,$id);
    $result = $h->query($sql);
    echo(”);
    while($row = $result->fetch_assoc()) {
    $bjc = array_filter(explode(“®”, $row[‘color’]));
    foreach($bjc as $value) {
    echo(”.$value.”);
    }
    اگر میشه راهنمایی کنید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *