دورة mysql للمبتدئين الدرس السادس


فهاد الدرس الجديد من دورة mysql للمبتدئين غادي نشوفوا كيفاش نسترجعوا المستخدمين من قاعدة البيانات وعرضهم من بعد غادي نشوفوا كيفاش نعدلو مستخدم اختاريناه باستعمال ل id ديالو وكيفاش نحذفوا مستخدم باستعمال ال id ديالو من قاعدة البيانات دائما باستعمال PDO.


1- إسترجاع المستخدمين من قاعدة البيانات

فباش نسترجع المستخدمين من قاعدة البيانات كنخدم ب requête SELECT ممكن نسترجع كلشي ب * SELECT النجمة كتعني الحقول كاملين أو نحدد الحقول لي بغيت فيلا بغيت غير nom ول prenom كندير SELECT nom,prenom وكنزيد FROM users لي كتعني من la table users.
فالمثال لي عندنا استرجعنا المستخدمين كاملين ب requête select منبعد حددنا نوع الإسترجاع بل fonction setFetchMode لي حددناه ف array منبعد كنخدم ب foreach لي كنعطيها ل fonction fetchAll لي كنسترجع بها القيم كاملين وكنعرضهم هنا عرضنا الأسماء فقط.
الكود لي زدنا هو :

                                //index.php

<?php
//connect to database using PDO
    $host = 'localhost';
    $user = 'root';
    $password = '';
    $db = 'php_course';
    try{
        $con = new PDO("mysql:host=$host;dbname=$db",$user,$password);
        $con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        $query = $con->prepare('SELECT * FROM users');
        $query->execute();
        $query->setFetchMode(PDO::FETCH_ASSOC);
        foreach($query->fetchAll() as $user){
            echo $user['nom'].'<br/>';
        }
    }catch(PDOException $e){
        //$conn->rollback();
        echo 'erreur '.$e->getMessage();
    }

    //close connection
    $con = null;
?>
                            

2- حذف مستخدم باستعمال ل ID ديالو

باش نمسح مستخدم بل id ديالو كنخدم ب requête sql ديالي كنقول DELETE FROM users WHERE id = 3 :
- DELETE كتعني حذف.
- FROM كتعني من.
- users جدول المستخدمين.
- WHERE كتعني قلب على المستخدم لي كيوافق الشرط.
- id = 3 الشرط ديالنا هو المستخدم لي ل id ديالو كيساوي 3.
فالمثال لي عندي كنفذ requête منبعد كن afficher رسالة نجاح مدازتش ف catch كنعرض رسالة خطأ.
الكود لي زدنا هو :

                                //index.php

<?php
//connect to database using PDO
    $host = 'localhost';
    $user = 'root';
    $password = '';
    $db = 'php_course';
    try{
        $con = new PDO("mysql:host=$host;dbname=$db",$user,$password);
        $con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        // $query = $con->prepare('SELECT * FROM users');
        // $query->execute();
        // $query->setFetchMode(PDO::FETCH_ASSOC);
        // foreach($query->fetchAll() as $user){
        //     echo $user['nom'].'<br/>';
        // }
        $sql = "DELETE FROM users WHERE id = 3";
        $con->exec($sql);
        echo 'utilisateur supprimé';
    }catch(PDOException $e){
        //$conn->rollback();
        echo 'erreur '.$e->getMessage();
    }

    //close connection
    $con = null;
?>
                            

3- تعديل اسم المستخدم باستعمال ل ID

باش نعدل مستخدم بل id ديالو كنخدم ب requête sql كنقول UPDATE users SET nom = 'fathi' WHERE id = 1 :
- UPDATE كتعني عدل.
- users جدول المستخدمين.
- SET كتعني بدل القيمة ديال الحقل للقيمة لي عطيناه.
- WHERE كتعني قلب على المستخدم لي كيوافق الشرط.
- id = 1 الشرط ديالنا هو المستخدم لي ل id ديالو كيساوي 1.
فالمثال لي عندي كنفذ requête منبعد كن afficher رسالة نجاح مدازتش ف catch كنعرض رسالة خطأ.
الكود لي زدنا هو :

                                //index.php

<?php
//connect to database using PDO
    $host = 'localhost';
    $user = 'root';
    $password = '';
    $db = 'php_course';
    try{
        $con = new PDO("mysql:host=$host;dbname=$db",$user,$password);
        $con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        // $query = $con->prepare('SELECT * FROM users');
        // $query->execute();
        // $query->setFetchMode(PDO::FETCH_ASSOC);
        // foreach($query->fetchAll() as $user){
        //     echo $user['nom'].'<br/>';
        // }
        // $sql = "DELETE FROM users WHERE id = 3";
        // $con->exec($sql);
        // echo 'utilisateur supprimé';
        $sql = "UPDATE users SET nom='fathi' WHERE id = 1";
        $con->exec($sql);
        echo 'utilisateur modifié';
    }catch(PDOException $e){
        //$conn->rollback();
        echo 'erreur '.$e->getMessage();
    }

    //close connection
    $con = null;
?>
                            

4- استخدام LIMIT لحصر عدد القيم المسترجعة

ف MYSQL كاين ل mot clé LIMIT لي كيمكن من تحديد عدد القيم لي بغينا نسترجعوا فالمثال لي عندنا كنسترجع المستخدمين ب requête sql select لي سبق شفنا و كنزيد  LIMIT لي عطيتها 3 يعني رجعلي غير ثلاثة ديال المستخدمين.
منبعد كنعرضهم فغادي يتعرضوا غير ثلاثة ديال المستخدمين.
الكود لي زدنا هو :

                                    //index.php

<?php
//connect to database using PDO
    $host = 'localhost';
    $user = 'root';
    $password = '';
    $db = 'php_course';
    try{
        $con = new PDO("mysql:host=$host;dbname=$db",$user,$password);
        $con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        // $query = $con->prepare('SELECT * FROM users');
        // $query->execute();
        // $query->setFetchMode(PDO::FETCH_ASSOC);
        // foreach($query->fetchAll() as $user){
        //     echo $user['nom'].'<br/>';
        // }
        // $sql = "DELETE FROM users WHERE id = 3";
        // $con->exec($sql);
        // echo 'utilisateur supprimé';
        // $sql = "UPDATE users SET nom='fathi' WHERE id = 1";
        // $con->exec($sql);
        // echo 'utilisateur modifié';
        $query = $con->prepare('SELECT * FROM users LIMIT 3');
        $query->execute();
        $query->setFetchMode(PDO::FETCH_ASSOC);
        foreach($query->fetchAll() as $user){
            echo $user['nom'].'<br/>';
        }
    }catch(PDOException $e){
        //$conn->rollback();
        echo 'erreur '.$e->getMessage();
    }

    //close connection
    $con = null;
?>