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

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

فهاد الدرس لي هو الجزء الثاني ديال كيفاش نقاد إختبار بإستعمال ل 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');?>
                                                        
                                                    

دروس ذات صلة

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

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