موقع ecommerce بل php و Mysql السلسلة الأولى الجزء الثاني

imadbelasri PHP
PH

فهاد الجزء الثاني من سلسلة موقع ecommerce بل php و mysql غادي نزيدو الملفات الخاصة بالإتصال بقاعدة البيانات بالإضافة للملف لي كيتضمن ل fonctions لي غادي يمكننا من القيام بعمليات الإضافة الإطلاع على المنتوجات وإضافتها للpanier.


نظرة سريعة بالفيديو


- ملفات الإتصال بقاعدة البيانات

فالمجلد includes غادي نزيد ملف نسميه config.php لي غادي يكون فيه الكود لي كيمكن من الإتصال بقاعدة البيانات فأولا ob_start هي فقط كتمكن من إفراغ الداكرة من لSession حيت فهاد المشروع غادي نخدمو بهم بزاف ثم كاين لconstantes لي كيمكنو من الإتصال بقاعدة البيانات لي زدنا ثم mysqli_set_charset هي فقط كتمكن من قراءة المعلومات لي كتضمن حروف بحال é الكود ديالوهو :

                                                    
                                                        <?php
ob_start();
session_start();
defined("DB_HOST") ? null : define("DB_HOST","localhost");
defined("DB_USER") ? null : define("DB_USER","root");
defined("DB_PASS") ? null : define("DB_PASS","");
defined("DB_NAME") ? null : define("DB_NAME","ecome_db");
$connection = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
mysqli_set_charset($connection,'utf8');

                                                    
                                                

- الملف functions.php

فالمجلد includes غادي نزيد ملف نسميه functions.php لي غادي يكون فيه الكود لي كيتضمن fonctions لي غادي نحتاجو فأولا كاين redirect لي هي كنستعملها فتوجيه المستخدم للصفحة معينة ثم query لي كتنفذ requête لي رسنالها لها ثم escape_string لي فقط كتأمن الحقول في حالة ما دخل المستخدم شي كود ماشي هو هاداك ثم fetch_array لي كترجع النتيجة ديال requête على شكل جدول ثم get_products لي كترجع المنتوجات من قاعدة البيانات ثم logout كتمكن المستخدم من تسجيل الخروج ثم empty_cart كتخوي لpanier الكود ديالوهو :

                                                        
                                                            <?php
require("config.php");
function redirect($location){
    header("location:".$location);
}
function query($sql){
    global $connection;
    return mysqli_query($connection,$sql);
}
function confirm($result){
    global $connection;
    if(!$result){
        die("Erreur ".mysqli_error($connection));
    }
}
function escape_string($string){
    global $connection;
    return mysqli_real_escape_string($connection,$string);
}
function fetch_array($result){
    return mysqli_fetch_array($result);
}
function get_products(){
    $sql = "SELECT * FROM products";
    $result = query($sql);
    return $result;
}
function logout(){
    unset($_SESSION['user_id']);
    unset($_SESSION['nom']);
    $_SESSION['logged'] = false;
    session_destroy();
    redirect("index.php");
}
function empty_cart($id,$price){
    unset($_SESSION['products_'.$id]);
    $_SESSION['count'] -= 1;
    $_SESSION['totaux'] -= $price;
    redirect("cart.php");
}
                                                        
                                                    

- الملف index.php

فالمجلد الرئيسي ديال المشروع ديالنا كنزيد ملف نسميه index.php لي غادي يكون فيه الكود لي كيمكن من عرض آخر المنتوجات لي زدنا فقاعدة البيانات بواسطة ل fonction get_products لي سبق عرفناها ف functions.php الكود ديالوهو :

                                                        
                                                            <?php include("includes/header.php");?>
<div class="container">
    <div class="panel panel-default">
        <?php include("includes/logo.php");?>
        <?php include("includes/navigation.php");?>
        <div class="row">
            <div class="col-md-4">
                <div class="panel panel-default" id="ville">
                    <div class="panel-heading"  style="background:rgba(0,0,0,0.8);color:#FFF;"><i class="fa fa-map-marker"></i> Villes</div>
                    <div class="panel-body">
                        <ul class="list-group">
                            <li class="list-group-item">
                                <span class="badge">14</span>
                                Casablanca
                            </li>
                            <li class="list-group-item">
                                <span class="badge">14</span>
                                Taza
                            </li>
                            <li class="list-group-item">
                                <span class="badge">14</span>
                                Rabat
                            </li>
                            <li class="list-group-item">
                                <span class="badge">14</span>
                                Tanger
                            </li>
                            <li class="list-group-item">
                                <span class="badge">14</span>
                                Fés
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
            <div class="col-md-8">
               <div class="panel panel-default" id="boutique">
                    <div class="panel-heading"  style="background:rgba(0,0,0,0.8);color:#FFF;"><i class="fa fa-list-alt"></i> Boutique</div>
                    <div class="row" id="products">
                        <?php
                            $result = get_products();
                            while($row = fetch_array($result)):?>
                        <div class="col-sm-6 col-md-4">
                            <div class="thumbnail">
                                <img src="<?php echo $row['product_image'];?>" alt="...">
                                <div class="caption">
                                    <h4><?php echo $row['product_title'];?></h4>
                                    <p><span class="label label-success"><?php echo $row['product_price'].' dh';?></span>  <strike class="text-danger"><?php echo $row['old_price'].' dh';?></strike></p>
                                    <p><?php echo $row['short_desc'];?></p>
                                    <p><a href="product.php?id=<?php echo $row['product_id'];?>" class="btn btn-default" role="button">Voir</a></p>
                                </div>
                            </div>
                        </div>  
                        <?php endwhile;?>
                    </div>
                </div>
            </div>
        </div>
        <footer>
            <ul class="footer">
                <li>&copy; DarijaCoding 2017</li>
            </ul>
        </footer> 
    </div>
</div>
<?php include("includes/footer.php");?>
                                                        
                                                    

- الملف products.php

فالمجلد الرئيسي ديال المشروع ديالنا كنزيد ملف نسميه products.php لي غادي يكون فيه الكود لي كيمكن من عرض المنتوجات كاملة لي عندنا فقاعدة البيانات بواسطة ل fonction get_products لي سبق عرفناها ف functions.php الكود ديالوهو :

                                                        
                                                            <?php include("includes/header.php");?>
<div class="container">
    <div class="panel panel-default">
        <?php include("includes/logo.php");?>
        <?php include("includes/navigation.php");?>
        <div class="row">
            <div class="col-md-12">
                <div class="row" id="products">
                    <?php
                        $result = get_products();
                        while($row = fetch_array($result)):?>
                    <div class="col-sm-6 col-md-4">
                        <div class="thumbnail">
                            <img src="<?php echo $row['product_image'];?>" alt="...">
                            <div class="caption">
                                <h4><?php echo $row['product_title'];?></h4>
                                <p><span class="label label-success"><?php echo $row['product_price'].' dh';?></span>  <strike class="text-danger"><?php echo $row['old_price'].' dh';?></strike></p>
                                <p><?php echo $row['short_desc'];?></p>
                                <p><a href="product.php?id=<?php echo $row['product_id'];?>" class="btn btn-default" role="button">Voir</a></p>
                            </div>
                        </div>
                    </div>  
                    <?php endwhile;?>
                </div> 
            </div>
        </div>
        <footer>
            <ul class="footer">
                <li>&copy; DarijaCoding 2017</li>
            </ul>
        </footer> 
    </div>
</div>
<?php include("includes/footer.php");?>
                                                        
                                                    

- الملف product.php

فالمجلد الرئيسي ديال المشروع ديالنا كنزيد ملف نسميه product.php لي غادي يكون فيه الكود لي كيمكن من عرض المعلومات الخاصة بمنتوج ختارو المستخدم بالإضافة للزر لي كيمكنو من اختيار الكمية لي بغا ومنبعد يزيدو فل panier فمنبعد مكنسترجع المعلومات الخاصة بالمنتوج كنصيفطها للملف checkout.php لي كمكن من إضافتها للpanier ديالي الملف checkout.php غادي نزيدوه فالجزء الثالت الكود ديال product.php هو :

                                                        
                                                            <?php include("includes/header.php");?>
<div class="container">
    <div class="panel panel-default">
        <?php include("includes/logo.php");?>
        <?php include("includes/navigation.php");?>
        <div class="row">
            <?php
                $id = escape_string($_GET['id']);      
                $sql = "SELECT * FROM products WHERE product_id = $id";
                $result = query($sql);
                $row = $result->fetch_array();
            ?>
            <div class="col-md-6 col-md-offset-2">
                <div class="row" id="products">
                    <div class="col-sm-10 col-md-10">
                        <div class="thumbnail">
                            <img src="<?php echo $row['product_image'];?>" alt="...">
                            <div class="caption">
                                <h3><?php echo $row['product_title'];?></h3>
                                <p><span class="label label-success"><?php echo $row['product_price'];?></span>  <strike class="text-danger"><?php echo $row['old_price'];?></strike></p>
                                <p><?php echo $row['product_description'];?></p>
                            </div>
                        </div>
                    </div>  
                </div>
            </div>
            <div class="col-md-4">
                <form action="checkout.php" method="post" class="form-vertical" id="products">
                    <div class="form-group">
                        <label for="qte">Qté :</label>
                        <input type="number" id="qte" name="qte" value="1">
                        <input type="hidden" name="product" value="<?php echo $row['product_title'];?>">
                        <input type="hidden" name="id" value="<?php echo $row['product_id'];?>">
                    </div>
                    <div class="form-group">
                        <button type="submit" class="btn btn-primary"><i class="fa fa-shopping-cart"></i> Ajouter au panier</button>
                    </div>
                </form>
            </div>
        </div>
        <footer>
            <ul class="footer">
                <li>&copy; DarijaCoding 2017</li>
            </ul>
        </footer> 
    </div>
</div>
<?php include("includes/footer.php");?>