موقع من الصفر بل PHP و Mysql للمبتدئين الجزء الاول

imadbelasri PHP
PH

فهاد الدرس غادي نشوفو كيفاش نقادو موقع بل php و mysql من الصفر الموقع عبارة عن forum المستخدم كيطرح السؤال ديالو من بعد مكيتسجل فقاعدة البيانات كيجاوبوه مستخدمين آخرين الموقع بسيط للمبتدئين فلغة ل php.


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


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

أول حاجة غادي نديرو هي غادي نزيدو قاعدة بيانات جديدة ف phpmyadmin نسميوها forum من بعد غادي نزيد فيها خمسة ديال لtables نسميهم users,categories,vues,sujets,reponses هادي هي قاعدة البيانات لي غادي تمكنا من حفظ المواضيع لي غادي يرسلوها المستخدمين ديالنا الكود باش تزيد الجدول فقاعدة البيانات هو :

                                                    
                                                        --
-- Structure de la table `categories`
--

CREATE TABLE IF NOT EXISTS `categories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;

--
-- Structure de la table `reponses`
--

CREATE TABLE IF NOT EXISTS `reponses` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `post_id` int(11) NOT NULL,
  `body` text NOT NULL,
  `date_ajout` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`,`post_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

--
-- Structure de la table `sujets`
--

CREATE TABLE IF NOT EXISTS `sujets` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `body` text NOT NULL,
  `category_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `date_ajout` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `category_id` (`category_id`,`user_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

--
-- Structure de la table `users`
--

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nom` varchar(255) NOT NULL,
  `prenom` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `pass` varchar(255) NOT NULL,
  `photo` varchar(255) DEFAULT 'user.png',
  `date_ins` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

--
-- Structure de la table `vues`
--

CREATE TABLE IF NOT EXISTS `vues` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `post_id` int(11) NOT NULL,
  `date_vue` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `post_id` (`post_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
                                                    
                                                

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

من بعد كنمشي wamp/www وكنزيد مجلد جديد كنسميه php_forum كنزيد فيه مجلد كنسميه database هو لي غادي يكونو فيه ملفات الإتصال بقاعدة البيانات أول ملف كنزيد فالمجلد هو constants.php فيه غادي يكونو لconstantes لي غادي نستخدمهم باش نتاصل بقاعدة البيانات الكود ديال الملف هو :

                                                        
                                                            <?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','');
define('DB_DATABASE','forum');
                                                        
                                                    

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

دائما فالمجلد database كنزيد فيه ملف كنسميه database.php فيه غادي يكون الكود لي غادي يمكن باش نتاصل بقاعدة البيانات باستخدام لconstantes لي سبقنا عرفنا فالملف constants.php الكود ديال الملف هو :

                                                        
                                                            <?php
include_once('constants.php');
$con = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_DATABASE);
                                                        
                                                    

- الملفات الأساسية

من بعد غادي تزيد فيه 3 ديال المجلدات css و js و includes منبعد غادي تقوم بتحميل bootstrap وغادي تزيد الملف bootstrap.min.css ف css وتزيد ملف bootstrap.min.js ف js من بعد غادي تزيد ملف تسميه header.php و آخر تسميه footer.php وآخر تسميه navigation.php فincludes الملف header.php الكود ديالو هو :

                                                        
                                                            <?php include_once('database/functions.php');?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Php Forum</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="css/main.css" rel="stylesheet">
    <link rel="stylesheet" href="css/font-awesome.min.css">
  </head>
  <body>
  <?php include('includes/navigation.php');?>
                                                        
                                                    

- الملفات الأساسية تتمة

دائما فincludes الملف navigation.php الكود ديالو هو :

                                                        
                                                              <!-- Static navbar -->
<nav class="navbar navbar-default">
    <div class="container-fluid">
        <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="#">Forum PHP</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li><a href="index.php"><i class="fa fa-home"></i> Acceuil</a></li>
                <li><a href="#"></a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <?php if(isset($_SESSION['logged']) && $_SESSION['logged'] == true):?>
                    <li><a href="logout.php"><?php echo $_SESSION['nom']." ".$_SESSION['prenom'];?> <i class="fa fa-sign-out"></i> Déconnexion</a></li>
                <?php else:?>
                   <li><a href="login.php"><i class="fa fa-sign-in"></i> Connexion</a></li>
                   <li><a href="register.php"><i class="fa fa-user-plus"></i> Inscription</a></li>
                <?php endif;?>
                <a href="add.php" class="btn btn-danger pull-right" id="add_new_subject"><i class="fa fa-pencil"></i> Nouveau sujet</a>
            </ul>
        </div><!--/.nav-collapse -->
    </div><!--/.container-fluid -->
</nav>