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

imadbelasri PHP
PH

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


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


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

أول حاجة غادي ندير غادي نزيد قاعدة بيانات جديدة ف phpmyadmin غادي نسميها quiz من بعد غادي نزيد فيها جوج ديال الجداول واحد questions والثاني choices الأول غادي تكون فيه الأسئلة والثاني الأجوبة ديال كل سؤال الكود ديالهم هو :

                                                    
                                                        //questions table

CREATE TABLE IF NOT EXISTS `questions` (
  `question_number` int(11) NOT NULL,
  `text` text CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`question_number`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

//choices table

CREATE TABLE IF NOT EXISTS `choices` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `question_number` int(11) NOT NULL,
  `is_correct` tinyint(4) NOT NULL,
  `text` text CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`),
  KEY `question_number` (`question_number`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ;
                                                    
                                                

- ربط الإتصال بقاعدة البيانات

أول حاجة غادي تمشي ل wamp/www وغادي تزيد مجلد جديد تسميه php-quizzer من بعد تزيد فيه مجلد واحد تسميه cssغادي تقوم بتحميل bootstrap وغادي تزيد الملف bootstrap.min.css ف css من بعد غادي تزيد ملف تسميه header.php و آخر تسميه footer.php و تزيد ملف تسميه index.php فالآخرغادي تزيد ملف تسميه database.php لي غادي يمكنا من الإتصال بقاعدة البيانات الكود ديالو هو :

                                                        
                                                            <?php 

$db_host = 'localhost';
$db_database = 'quiz';
$db_user = 'root';
$db_pass='';

$mysqli = new mysqli($db_host,$db_user,$db_pass,$db_database);

if($mysqli->connect_error){
    printf("connexion echouée : %s\n",$mysqli->connect_error);
    exit();
}
mysqli_query($mysqli,"SET NAMES 'utf8'");

                                                        
                                                    

- الملف add.php

من بعد غادي نزيد ملف نسميه add.php هو لي غادي يمكني من إضافة الأسئلة فقاعدة البيانات غادي يتحقق من الحقول لي كاينة فلForm من بعد غادي يرسل المعلومات الخاصة بالسؤال والاجوبة ديالو لقاعدة البيانات الكود ديالو :

                                                        
                                                            <?php 
include('database.php');
//get the total of questions
$query = "SELECT * FROM `questions`";
$result = $mysqli->query($query);
$total = $result->num_rows;
if(isset($_POST['submit'])){
    $choices = array();
    $number = $_POST['qnumber'];
    $question = $_POST['question'];
    $choices['1'] = $_POST['choice1'];
    $choices['2'] = $_POST['choice2'];
    $choices['3'] = $_POST['choice3'];
    $choices['4'] = $_POST['choice4'];
    $choices['5'] = $_POST['choice5'];
    $correct = $_POST['correct'];
    //run query
    $query = "INSERT INTO `questions` (question_number,text) VALUES('$number','$question')";
    $inserted = $mysqli->query($query);
    if($inserted){
        foreach($choices as $choice => $value){
            if($value != ''){
                if($correct == $choice){
                    $is_correct = 1;
                }else{
                    $is_correct = 0;
                }
                $query = "INSERT INTO `choices` (question_number,is_correct,text) VALUES('$number','$is_correct','$value')";
                $inserted = $mysqli->query($query);   
                if($inserted){
                    continue;
                } else{
                    die('Erreur !'.$mysqli->error);
                }
            }
        }
        $msg = "<div class='alert alert-success'>السؤال أضيف بنجاح</div>";
    }else{
        die('Erreur !'.$mysqli->error);
    }
}
?>
<?php
include('header.php');
?>
<div class="container">
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="panel panel-default">
                <h1 class="text-center text-primary">إختبار قصير فالثقافة العامة</h1>
                <hr>
                <h3 class="text-danger title">إضافة سؤال</h3>
                <hr>
                <?php if(isset($msg)){ echo $msg;}?>
                <section class="questions-box row">
                    <div class="col-md-8 col-md-offset-2">
                       <form action="add.php" method="post">
                            <div class="form-group">
                                <label for="qnumber">رقم السؤال</label>
                                <input type="number" name="qnumber" value="<?php echo $total+1;?>" class="form-control">
                            </div>
                            <div class="form-group">
                                <label for="question">السؤال</label>
                                <input type="text" name="question" class="form-control">
                            </div>
                            <div class="form-group">
                                <label for="choice1">الإختيار الأول</label>
                                <input type="text" name="choice1" class="form-control">
                            </div>
                            <div class="form-group">
                                <label for="choice2">الإختيار الثاني</label>
                                <input type="text" name="choice2" class="form-control">
                            </div>
                            <div class="form-group">
                                <label for="choice3">الإختيار الثالت</label>
                                <input type="text" name="choice3" class="form-control">
                            </div>
                            <div class="form-group">
                                <label for="choice4">الإختيار الرابع</label>
                                <input type="text" name="choice4" class="form-control">
                            </div>
                            <div class="form-group">
                                <label for="choice5">الإختيار الخامس</label>
                                <input type="text" name="choice5" class="form-control">
                            </div>
                            <div class="form-group">
                                <label for="correct"> رقم الإختيار الصحيح</label>
                                <input type="text" name="correct" class="form-control">
                            </div>
                            <div class="form-group">
                                <button type="submit" name="submit" class="btn btn-success">أضف</button>
                            </div>
                       </form>
                    </div>
                </section>
            </div>
        </div>
    </div>
</div>
<?php include('footer.php');?>
                                                        
                                                    

- الصفحة الرئيسية

الملف index.php هو لي غادي يمكني من عرض الاسئلة للمستخدم مع الوقت المحدد للإجابة عليها بالإضافة للزر ديال بدأ الإختبارهاد الملف غادي يكون عندو جوج ملفات آخرين كيعتمد عليهم الأول header.php الكود ديالو :

                                                        
                                                            <!DOCTYPE html>
<html lang="fr" dir="rtl">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Simple Php Quiz</title>

    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="css/styles.css" rel="stylesheet">
    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
                                                        
                                                    

- الملف footer.php

الملف الثاني لي غادي تعتمد عليه الصفحة الرئيسية هو footer.php الكود ديالو :

                                                        
                                                             <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="js/bootstrap.min.js"></script>
    <script src="js/script.js"></script>
  </body>
</html>
                                                        
                                                    

دروس ذات صلة

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 الجزء الثالث

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