موقع شكايات ب php و mysql الجزء الأول

منذ 4 سنوات imadbelasri PHP
PH

فهاد ل projet الجديد من سلسلة php غادي نشوفو كيفاش نصاوبو موقع شكايات ب php و mysql سميناه chikaya.com لي كيمكن المستخدم من تقديم شكاية بشي service الشكاية كتسجل من بعد كيمكنلو يطلع على المسار ديالها فهنا خدمنا ل frontend ومنبعد غادي نديرو mise à jour فيه ل backend.


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


1- إنشاء قاعدة البيانات

أول حاجة غادي تمشي لphpmyadmin وغادي تزيد قاعدة بيانات جديدة تسميها chikaya من بعد غادي تزيد فيه 2 tables وحدة plaintes والأخرى contacts الكود ديال إنشاء قاعدة البيانات هو :

                                                    
                                                        --
-- Structure de la table `contacts`
--

CREATE TABLE `contacts` (
  `id` int(11) NOT NULL,
  `fullname` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `body` text NOT NULL,
  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `plaintes` (
  `id` int(11) NOT NULL,
  `fullname` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `category` varchar(255) NOT NULL,
  `city` varchar(255) NOT NULL,
  `title` varchar(255) NOT NULL,
  `body` text NOT NULL,
  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `code` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Index pour la table `contacts`
--
ALTER TABLE `contacts`
  ADD PRIMARY KEY (`id`);

--
-- Index pour la table `plaintes`
--
ALTER TABLE `plaintes`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT pour les tables déchargées
--

--
-- AUTO_INCREMENT pour la table `contacts`
--
ALTER TABLE `contacts`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=0;

--
-- AUTO_INCREMENT pour la table `plaintes`
--
ALTER TABLE `plaintes`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=0;
                                                    
                                                

2- الملف config.php

من بعد غادي نمشي ل xampp/htdocs أو wamp/www ونزيد dossier جديد سميه  chikaya.com فيه زيد dossier جديد سميه database فيه زيد ملف جديد سميه config.php فيه غادي يكونوا  des constantes لي هما les variables de connexion الكود ديال الملف هو :

                                                        
                                                            <?php 
define ('DB_HOST','localhost');
define ('DB_USER','root');
define ('DB_PW','');
define ('DB_DATABASE','chikaya');
                                                        
                                                    

3- الملف Database.php

دائما فالمجلد database كنزيد ملف جديد كنسميه Database.php لي عبارة عن class فيها la fonction connect لي كتمكن من الإتصال بقاعدة البيانات بواسطة les constantes لي زدنا ف config.php منبعد عندي query لي كت executer une requête منبعد عندي escape_string لي فقط كت sécuriser  les champs منبعد inserted_id لي كترجعنا ل id ديال أخر ligne تزادت الكود ديال الملف هو:


                                                        
                                                            <?php
require_once('config.php');
/**
 * 
 */
class Database 
{
   public $connection;
   public function __construct(){
       $this->connect();
   }
   public function connect(){
       $this->connection = new mysqli(DB_HOST,DB_USER,DB_PW,DB_DATABASE);
       if($this->connection->connect_errno){
           die('connexion echouée '.mysqli_error($this->connection ));
       }
   }
   public function query($query){
       $result = mysqli_query($this->connection,$query);
       return $result;
   }
   public function escape_string($string){
       $escaped_string = mysqli_real_escape_string($this->connection,$string);
       return $escaped_string;
   }
   public function inserted_id(){
       $id = mysqli_insert_id($this->connection);
       return $id;
   }
}
$database = new Database();
                                                        
                                                    

4- الملف Query.php

دائما فالمجلد database كنزيد ملف جديد كنسميه Query.php لي عبارة عن class فيها la fonction insert لي كتمكن من إضافة plainte لقاعدة البيانات منبعد عندي addMessage لي كتمكن من إضافة message لقاعدة البيانات منبعد عندنا find لي كتمكن من البحث على plainte بواسطة الكود ديالها منبعد عندي makeCode لي كت générer un code aléatoire كتخدو كل plainte تزادت الكود ديال الملف هو:

                                                        
                                                            <?php
require ('Database.php'); 
/**
 * 
 */
class Query
{
    public function insert($values = array()){
        global $database;
        $sql = "INSERT INTO plaintes (fullname,email,category,city,title,body,code) VALUES ('".implode("','",$values)."')";
        if($database->query($sql)){
            return $database->inserted_id();
        }else{
            return mysqli_error($database->connection);
        }
    }
    public function addMessage($values = array()){
        global $database;
        $sql = "INSERT INTO contacts (fullname,email,body) VALUES ('".implode("','",$values)."')";
        if($database->query($sql)){
            return $database->inserted_id();
        }else{
            return mysqli_error($database->connection);
        }
    }
    public function find($code){
        global $database;
        $sql = "SELECT count(*) FROM plaintes WHERE code='$code'";
        $result = $database->query($sql);
        $total = mysqli_fetch_assoc($result);
        return !empty($total) ? array_shift($total) : false;
    }
    public function makeCode(){
        global $database;
        do{
            $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
            $charactersLength = strlen($characters);
            $code = '';
            for ($i = 0; $i < 10; $i++) {
                $code .= $characters[rand(0, $charactersLength - 1)];
            }
            $sql = "SELECT count(*) FROM plaintes WHERE code=".$code;
            $code_url = $database->query($sql);
        }while($code_url >= 1);
        return $code; 
    }
}
                                                        
                                                    

دروس ذات صلة

PH

كيفاش تزيد المعلومات فقاعدة البيانات بإستعمال Ajax

فهاد الدرس غادي نقادو واحد المشروع بسيط لي عبارة عن chatbox الهدف هنا ماشي هو نديرو chat ولكن الهدف...


PH

كيفاش تصاوب إختبار بإستعمال PHP الجزء الأول

فهاد الدرس غادي نشوفو كيفاش نديرو نصاوبو واحد الإختبار بسيط هاد الإختبار غادي يطرح الاسئلة على المست...


PH

كيفاش تصاوب إختبار بإستعمال PHP الجزء الثاني

فهاد الدرس لي هو الجزء الثاني ديال كيفاش نقاد إختبار بإستعمال ل php غادي نكملو باقي الصفحات لي غادي...


PH

كيفاش نصاوب blog بل php الجزء الأول

فهاد المشروع غادي نشوفو كيفاش نقادو blog بإستعمال php كما غادي نشوفو كيفاش نسجلو المعلومات ديالنا فق...


PH

كيفاش نصاوب blog بل php الجزء الثاني

فهاد الجزء الثاني من هاد المشروع غادي نشوفو كيفاش نسجلو المعلومات ديالنا فقاعدة البيانات و كيفاش ند...


PH

كيفاش نصاوب blog بل php الجزء الثالث

فهاد الجزء الثالث من هاد المشروع غادي نكملو الملفات الخاصة بالأدمن وغادي نقادو الصفحات الرئيسية لي...


PH

كيفاش نصاوب blog بل php الجزء الرابع

فهاد الجزء الرابع غادي نشوفو كيفاش نزيدو système d'authentification لي غادي يمكن المستخدم من التسجيل...


PH

مشروع Photos Gallery بل PHP الجزء الأول

فهاد الدرس غادي نشوفو كيفاش نصاوبو واحد المشروع لي عبارة عن موقع للصور المستخدم كيدخل كيشاهد الصور و...


PH

مشروع Photos Gallery بل PHP الجزء الثاني

فهاد الجزء الثاني غادي نقادو الملفات لي غادي يمكننا من ربط الإتصال بقاعدة البيانات وغادي نزيدو الملف...


PH

مشروع Photos Gallery بل PHP الجزء الثالث

فهاد الجزء الثالث من المشروع ديالنا غادي نكملو الملفات لي غادي يمكنو من التعامل مع المعلومات الخاصة...