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

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

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


- تكملة الصفحة الرئيسية


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

                                    
                                        <?php 
include('database.php');
//get the total of questions
$query = 'SELECT * FROM `questions`';
$result = $mysqli->query($query);
$total = $result->num_rows;
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>
                <section class="questions-box row">
                    <div class="col-md-8 col-md-offset-2">
                        <h4 class="lead"><span class="label label-primary">عدد الأسئلة : <?php echo $total;?></span></h4>
                        <h4 class="lead"><span class="label label-success">النوع : بالإختيارات</h4>
                        <h4 class="lead"><span class="label label-warning">الوقت المحدد : <?php echo $total * .5;?> دقائق</h4>
                    </div>
                </section>
                <hr>
                <div class="form-group row">
                    <div class="col-md-6 col-md-offset-3"> 
                         <a href="question.php?n=1" class="btn btn-default form-control">بدأ الإختبار</a>
                    </div>
                </div>
                <div class="form-group row">
                    <div class="col-md-6 col-md-offset-3"> 
                         <a href="add.php" class="btn btn-default form-control">إضافة سؤال</a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<?php include('footer.php');?>
                                    
                                

- الملف style.css


فالمجلد css غادي نزيد واحد الملف ونسميه style.css غادي يكون فيه كود ديال css الكود النهائي ديالو هو :

                                    
                                        body{
    background: rgba(0,0,0,0.5);
}
.panel{
    margin-top:100px;
    box-shadow: 2px 2px 2px rgba(0,0,0,0.5);
}
.btn-default{
    background: rgba(0, 0, 0, 0.8);
    color:#FFF;
}
.title{
    margin-right:10px;
}
.questionsNumber{
    background: #f4f4f4;
    margin-right:20px 0px 10px 0px;
    border : 1px dotted #ccc;
    padding: 10px;

}
                                    
                                

- الملف question.php


منبعد غادي نزيد ملف نسميه question.php هاد الملف غادي يمكن من عرض كل سؤال بوحدو مع عرض الإختيارات للإجابة عليه المستخدم غادي يختار الجواب ويظغط على زر تاكيد ليمر للسؤال الموالي الكود ديالو :

                                      
                                        <?php
include('database.php');

// get seletced questions
$number = (int)$_GET['n'];
$query = 'SELECT * FROM `questions` WHERE  question_number ='.$number;
$result = $mysqli->query($query);
$question = $result->fetch_assoc();
//get question seletced choices
$query = 'SELECT * FROM `choices` WHERE  question_number ='.$number;
$choices = $mysqli->query($query);
//get the total of questions
$query = 'SELECT * FROM `questions`';
$result = $mysqli->query($query);
$total = $result->num_rows;
?>
<?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 questionsNumber">الأسئلة من <?php echo $question['question_number'];?> ل <?php echo $total;?></h3>
                <hr>
                <form action="process.php" method="post">
                    <section class="questions-box row">
                    <div class="col-md-8 col-md-offset-2">
                        <h4 class="text-default"><?php echo $question['text'];?></h4>
                          <?php while($row = $choices->fetch_assoc()):?>
                             <input type="radio" value="<?php echo $row['id'];?>" name="choice"> <?php echo $row['text'];?><br>
                          <?php endwhile;?>
                          <input type="hidden" name="number" value="<?php echo $number;?>">
                        </div>
                    </section>
                    <hr>
                    <div class="form-group row">
                        <div class="col-md-6 col-md-offset-3"> 
                            <button type="submit"  class="btn btn-success form-control">تأكيد</button>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>
<?php include('footer.php');?>
                                      
                                    

- الملف process.php


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

                                        
                                            <?php
include('database.php');
session_start();
?>
<?php

if(!isset($_SESSION['score'])){
    $_SESSION['score'] = 0;
}
if($_POST){
    $number = $_POST['number'];
    $seleted_choice = $_POST['choice'];
    $next_question = $number+1;
    //استرجاع كل الأسئلة
    $query = 'SELECT * FROM `questions`';
    $result_total = $mysqli->query($query);
    $total = $result_total->num_rows;
    //كنتأكد واش  الجواب الصحيح
    $query = "SELECT * FROM `choices` WHERE question_number = $number AND is_correct = 1";
    //النتيجة
    $result = $mysqli->query($query);
    //هنا الجواب الصحيح
    $row = $result->fetch_assoc();
    //كنزيدو ف variable
    $correct_choice = $row['id'];
    //كنقارن ونزيد فالنتيجة يلا كانت صحيحة
    if($correct_choice == $seleted_choice){
        $_SESSION['score']++;
    }
    //التحقق واش هدا آخر سؤال
    if($number == $total){
        header("location:final.php");
        exit();
    }else{
        header("location:question.php?n=".$next_question);
        exit();
    }
}
                                        
                                    

- الملف final.php


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

                                        
                                            <?php 
include('header.php');
session_start();
?>
<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>
                <section class="questions-box row">
                    <div class="col-md-8 col-md-offset-2">
                        <p class="lead">لقد أكملت الإختبار تهانينا </p>
                        <p class="lead">النتيجة النهائية : <?php echo $_SESSION['score'];?></p>
                    </div>
                </section>
                <hr>
                <div class="form-group row">
                    <div class="col-md-6 col-md-offset-3"> 
                         <a href="question.php?n=1" class="btn btn-default form-control">تعاود الإختبار</a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<?php include('footer.php');?>
                                        
                                    

كلمات مفاتيح :