اذهب إلى المحتوى

السؤال

نشر

 يتم جمع الاختبار الأول مع الثاني مع النهائي وطباعة تقدير الطالب على النحو التالي :

أقل من 60 يطبع راسب

من 60 - 69 يطبع مقبول

من 70- 79 يطبع جيد

من 80 -89 يطبع جيد جداً

من 90 -100 يطبع ممتاز

مع ملاحظة أنه في حالة  درجة الطالب في الاختبار الأول أو الثاني أقل من  5 درجات   يعتبر راسب

وأن لا تقل درجة الاختبار النهائي عن 20 درجة يعتبر أيضاً راسب .

Recommended Posts

  • 0
نشر

في البداية سأعتبر أن لديك الجدول باسم grades الذي يحتوي على علامات الطلاب والذي ستكون اسماء الأعمدة على الشكل التالي:

first_grade, second_grade, final_grade

واسم الجدول لديك grades سيكون لدينا الكود كالتالي:

        $servername = "localhost";
        $username = "root";
        $password = "";

        // Create connection
        $conn = mysqli_connect($servername, $username, $password, 'schoolGrades');

        // Check connection
        if (!$conn) {
            die("Connection failed: " . mysqli_connect_error());
        }

		$sql = "SELECT * FROM grades";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            // output data of each row
            while ($row = $result->fetch_assoc()) {
                if ($row['first_grade'] <= 5 || $row['second_grade'] <= 5 || $row['final_grade'] <= 20) {
                    echo "راسب";
                    continue;
                }
                $sum = $row['first_grade'] + $row['second_grade'] + $row['final_grade'];
                switch ($sum) {
                    case $sum >= 90:
                        echo "ممتاز";
                        break;
                    case $sum >= 80 && $sum < 89:
                        echo "جيد جداً";
                        break;
                    case $sum >= 70 && $sum < 79:
                        echo "جيد";
                        break;
                    case $sum >= 60 && $sum < 69:
                        echo "مقبول";
                        break;
                    default:
                        echo "راسب";
                        break;
                }
            }
        } else {
            echo "0 results";
        }
        $conn->close();

 

  • 0
نشر (معدل)

مشكور يغالي ماقصرت بس ابي الكود في elseif ويكون مربوط بالصفحه الاولى الي عندي وذا كود الصفحه الاولى 


<!DOCTYPE html>

<html lang="en">

<head>

  <title>Bootstrap Example</title>

  <meta charset="utf-8">

  <meta name="viewport" content="width=device-width, initial-scale=1">

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">

</head>

<body>



<div class="container">

  <h2>درجات الطالب</h2>

  <form action="AAA.php">

    <div class="form-group">

      <label for="num">درجة اختبار شهر الأول:</label>

      <input type="text" class="form-control" id="email" name="num">

    </div>

    <div class="form-group">

      <label for="pwd">درجة اختبار شهر الثاني:</label>

      <input type="text" class="form-control" id="num" name="num">

    </div>

    <div class="form-group form-check">

      <label class="form-check-label">

      </label>

    <button type="submit" class="btn btn-primary">انهاء</button>

  <form method="get" action="AAA.php">

</div>



</body>

</html>



<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>

 

تم التعديل في بواسطة أسامة كمال النبريص
وضع الكود في المكان الصحيح
  • 0
نشر

كود الصفحة الخاص بك يحتوي على مدخلين هل تريد إدخال القيم ومن ثم إظهار النتيجة, إذا كان الأمر كذلك هذا ما تقوم به javascript بشكل اسهل أو php ولكن ينقصك كدخل العلامة النهائية. أما في حال كنت تريد إحضار جميع البيانات من قاعدة البيانات فالكود الذي أرسلته في البداية سيعمل معك مع التعديل على ما تطلبته وهو تحويل ال switch إلى ifelse.

إذا كان الحساب سيتم مباشرة فالكود سيكون كالتالي, نضع هذا الكود الذي سيقوم بالتحقق من البيانات وحسابها في الأعلى:

<?php
$status ='';

if(isset($_GET['grade1']) && isset($_GET['grade2']) && isset($_GET['final'])){
    $sum = $_GET['grade1'] + $_GET['grade1'] + $_GET['final'];
    if($_GET['grade1'] <= 5 || $_GET['grade1'] <= 5 || $_GET['final'] <= 20)
        $status = 'راسب';
        elseif ($sum >= 90)
            $status = 'ممتاز';

        elseif ($sum >= 80 && $sum < 89)
            $status = 'جيد جداَ';

        elseif ($sum >= 70 && $sum < 79)
            $status = 'جيد';

        elseif ($sum >= 60 && $sum < 69)
            $status = 'مقبول';

        else
            $status = 'راسب';
}
?>

ولقد أضفت حقل إدخال إضافي للعلامة النهائية وكذلك النص الذي سيبين حالة الطالب لذا قم باستبدال ال form  الذي لديك بهذا الكود:

 <form action="">

            <div class="form-group">

                <label for="num">درجة اختبار شهر الأول:</label>

                <input type="text" class="form-control" id="email" name="grade1" value="0">

            </div>

            <div class="form-group">

                <label for="pwd">درجة اختبار شهر الثاني:</label>

                <input type="text" class="form-control" id="num" name="grade2" value="0">

            </div>
            <div class="form-group">

                <label for="pwd">درجة اختبار النهائية:</label>

                <input type="text" class="form-control" id="num" name="final" value="0">

            </div>

            <div class="form-group form-check">

                <button type="submit" class="btn btn-primary">انهاء</button>

            </div>
            <div class="form-group">

                <label for="pwd">انت:<?php echo $status; ?></label>

            </div>

        </form>

يمكنك تنسيقه كيفما تشاء, وما يتم هنا هو أنه عند إدخال النصوص فانه سيرجع لنفس الصفحة ويتأكد في البداية من أن هنالك قيم تم إرسالها أم لا عبر هذا الكود:

if(isset($_GET['grade1']) && isset($_GET['grade2']) && isset($_GET['final']))

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...