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

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

مقدمه

سلام خدمت شما همراهان گرامی وبسایت ilikephp . علیرضا حاتمی نیا هستم با آموزش ویژه امروز تحت عنوان ساخت سبد خرید ساده با php و mysql در خدمت شما هستم. 

توجه : ویدیو آموزش در انتهای این صفحه جهت دانلود و نمایش ارائه شده است. توصیه می شود ایتدا آموزش متنی را مرور کرده و سپس ویدیو را مشاهده نمایید.
سناریو کلی کار به این صورت است که پایگاه داده ای به نام shop در mysql می سازیم و جدولی به نام producs جهت معرفی محصولات نیز موجود است. در صفحه اصلی سایت محصولات در جدولی به کاربر نمایش داده می شود و سپس کاربر می تواند هر محصول را توسط دکمه "add to cart" به سبد خرید اضافه کند. هنگامی که کاربر محصولات را به سبد خرید اضافه کرد id محصول همراه لینک به صفحه cart.php ارسال می شود. در صفحه cart.php بررسی می شود که اگر این محصول قبلا به سبد خرید اضافه نشده بود توسط session[‘products’] ساخته می شود و مقدار آن برابر 1 می شود. به این معنی که این محصول فقط 1 بار انتخاب شده است. و اگر این محصول قبلا به سبد خرید اضافه شده بود 1 واحد به این مقدار اضافه می شود. سپس از id های درخواست شده به جدول products یک select می زنیم و محصول انتخاب شده با تعداد درخواست شده را به سبد خرید اضافه می کنیم.

پیش نیازها:

جهت فراگیری این آموزش بایستی با مفاهیم زیر آشنایی داشته باشید:

  1. آموزش طراحی سایت (HTML,CSS)
  2. آموزش PHP و Mysql

گام اول: ساخت جدول محصولات فروشگاه با نام products : 

در mysql و توسط نرم افزار تحت وب  phpmyadmin جدولی مشابه زیر می سازیم و مقدارهای پیشفرض به آن می دهیم. (برای دسترسی به محیط phpmyadmin کافیست در مرورگر به آدرس localhost:/phpmyadmin مراجعه کنید)

این جدول دارای فیلدهای زیر است:

فیلد id نوع داده ای integer و از نوع auto increament

فیلد name نوع داده ای string

فیلد price نوع داده ای double

فیلد description نوع داده ای string

ساخت سبد خرید با php

گام دوم: ساخت صفحه معرفی محصول با نام index.php

صفحه ای با نام index.php برای معرفی محصولات به مشتری می سازیم. محصولات در جدولی به کاربران نمایش داده می شود. یک ستون اضافه هم برای نمایش لینکی جهت اضافه کردن محصول دلخواه به سبد خرید نیز اضافه می کنیم. 

ساخت صفحه معرفی محصول با php

 

 <?php
$con = mysqli_connect('localhost','root' , '' , 'shop');
if(mysqli_connect_errno()) {
    echo mysqli_connect_error();
}

$query = "SELECT * FROM `products`";

?>

<!DOCTYPE html>

<html>
<head>
    <title>shop</title>
    <style>
        table th {
            background: black;
            color: white;
            padding: 7px;
        }
        table tr td {
            border: 1px solid green;
            padding: 7px;
        }
    </style>
</head>
<body>
<h1> shop page </h1>
<table>
    <tr>
        <th>name</th>
        <th>description</th>
        <th>price</th>
        <th>Add</th>
    </tr>
    <?php
        if($result = mysqli_query($con , $query)) {
            while ($obj = mysqli_fetch_object($result)) {
                echo
                    '<tr>' .
                     '<td>' . $obj->name . '</td>' .
                     '<td>' . $obj->description . '</td>' .
                     '<td>' . $obj->price . '</td>' .
                     '<td> <a href="cart.php?id='.$obj->id.'">add to cart</a></td>' .
                    '</tr>';
            }
        }
    ?>
</table>
</body>
</html>

سپس در صفحه Cart.php بایستی session[‘products’][$id] را به اضای هر بار کلیک ایجاد و یک مقدار به آن اضافه کنیم. 

 if(isset($_GET['id'])){
    $id = $_GET['id'];
    if(isset($_SESSION['products'][$id])) {
        $_SESSION['products'][$id] +=1;
    }
    else {
        $_SESSION['products'][$id] = 1;
    }

}

سپس برای نمایش محصولات اضافه شده به سبد خرید و تعداد درخواست شدهبه روش زیر عمل می کنیم 

 <?php
    if (isset($_SESSION['products'])){
        foreach ($_SESSION['products'] as $id2 => $key) {
            $query = "SELECT * FROM products WHERE id=$id2";
            $result = mysqli_query($con , $query);
            $obj = mysqli_fetch_object($result);
            echo '<tr>' .
                '<td>'.$obj->name.'</td>' .
                '<td>'.$obj->description.'</td>' .
                '<td>'.$obj->price.'</td>' .
                '<td>'.$key.'</td>' .
                '<td><a href="cart.php?deleteId='.$obj->id.'">Delete</a></td>' .
                '</tr>';
        }
    }


    ?>

کنار محصولات اضافه شده به سبد خرید می توانیم دکمه ای جهت حذف محصول از سبد خرید اضافه کنیم. لینک این دکمه هر بار به صفحه cart.php بر میگردد و پارامتر deleteId را همراه با مقدار id محصول مورد نظر بر می گرداند و محصول مورد نظر را unset می کند. 

 if(isset($_GET['deleteId'])) {
    unset($_SESSION['products'][$_GET['deleteId']]);
}
برای خالی کردن سبد خرید هم به شیوه زیر عمل می کنیم 
if(isset($_GET['emptyCart'])) {
    unset($_SESSION['products']);
}

فیلم آموزش ساخت سبد خرید با استفاده از php و mysql

برای درج نظر و یا طرح سوالات خود لطفا در سایت ثبت نام کنید و یا وارد سایت شوید

نظرات کاربران

برای این مطلب تاکنون نظری ارسال نشده است. شما اولین نفر باشید