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

السؤال

Recommended Posts

  • 0
نشر

ستحتاجين إلى الإتصال بقاعدة البيانات من خلال PDO، ثم استعلام SQL لترتيب النتائج حسب التخصص مع ORDER BY specialty لضمان ترتيب النتائج حسب التخصص.

ثم إنشاء مصفوفة جديدة $groupedStudents وتكرار خلال جميع الطلاب وتجميعهم حسب التخصص.

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

كالتالي:

<?php
$host = 'localhost';
$dbname = 'اسم_قاعدة_البيانات';
$username = 'اسم_المستخدم';
$password = 'كلمة_المرور';

try {
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $stmt = $conn->prepare("SELECT * FROM students ORDER BY specialty");
    $stmt->execute();
    
    $students = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    $groupedStudents = [];
    foreach ($students as $student) {
        $specialty = $student['specialty'];
        if (!isset($groupedStudents[$specialty])) {
            $groupedStudents[$specialty] = [];
        }
        $groupedStudents[$specialty][] = $student;
    }
    
    if (!empty($groupedStudents)) {
        foreach ($groupedStudents as $specialty => $students) {
            echo "<h2>تخصص: $specialty</h2>";
            echo "<table border='1'>";
            echo "<tr><th>ID</th><th>الاسم</th><th>البريد الإلكتروني</th><th>التاريخ</th></tr>";
            
            foreach ($students as $student) {
                echo "<tr>";
                echo "<td>{$student['id']}</td>";
                echo "<td>{$student['name']}</td>";
                echo "<td>{$student['email']}</td>";
                echo "<td>{$student['date']}</td>";
                echo "</tr>";
            }
            
            echo "</table><br>";
        }
    } else {
        echo "لا توجد بيانات لعرضها";
    }
    
} catch(PDOException $e) {
    echo "خطأ في الاتصال: " . $e->getMessage();
}

$conn = null;
?>

بالطبع عليكِ تعديل أسماء الجدول والحقول لتتناسب مع قاعدة البيانات لديكِ.

 

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

ينبغي عليك أن يكون لديك معرفة في طريقة التعامل وكيفية إستخدام إستعلامات SQL المسؤولة عن التعامل مع البيانات وإستخراجها وأيضا كيفية البحث والترشيح في تلك البيانات .

وأرشح لك المقالين التاليين لتتعلم كيف تتعامل مع البيانات و إرجاعها بالطريقة التي تريدها وأيضا كيف تقوم بالبحث بداخل تلك البيانات :

 

 

ولنفرض مثلا أن الجدول لديك يحتوي التالي :

  • student_id: معرّف الطالب
  • student_name: اسم الطالب
  • department: التخصص

فمثلا لو أردت معرفة عدد الطلاب في كل تخصص أو قسم يمكنك إستعمال الإستعلام التالي :

SELECT department, COUNT(*) AS total_students
FROM students
GROUP BY department
ORDER BY total_students DESC;

لو أردت مثلا إحضار الطلاب في قسم أو تخصص معين يمكنك إستخدام الإستعلام التالي :

SELECT student_name
FROM students
WHERE department = 'Computer';

وهكذا يمكنك بناء أى إستعلام تريده بناء على هيكل الجدول لديك وما هي التقارير التي تريد إنشاءها .

أما إذا كنت تقصد عرضها أيضا في صفحة الموقع كرسومات بيانية فأنت ستحتاج مكتبة java script خاصة بعرض التقارير ويمكنك قراءة المقال التالي لأشهر المكتبات الخاصة بذلك وأنصحك بمكتبة charts.js فهي ممتازة في هذا الجزء :

 

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...