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

السؤال

نشر

السلام عليكم اريد عرض حقول تالية من جداول وهيا كالاتي 

مسار الملف اسم المشروع رقم القيد اسم الطالب ايميل طالب اسم المشرف اسم القسم 

هادي جملة استعلام كل حقول تظهر به بيانات الي حقلي مسار ملف واسم المشروع تظهر بي null  للعلم الربط بين حقلين id-p مفتاح اجنبي في جدول file_project  وحقل id_pro  مفتاح رئيسي في جدول projects

select f.path_file ,p.name_project,s.Num_std ,s.Name_std ,s.Email_STD ,t.Name_teah,d.Name_dept from file_project f left JOIN projects p on p.id_Pro=f.id_p right JOIN student s ON p.Num_STD=s.Num_std RIGHT JOIN teachers t ON s.id_teah=t.id_teah RIGHT JOIN departments d ON t.id_dept=d.id_dept;

 

Recommended Posts

  • 0
نشر

أعتقد  أن هناك بعض الأخطاء في عملية الربط وفي ترتيب الجداول، حاول تنفيذ الاستعلام التالي الذي يحل الأخطاء ويعطيك النتائج المطلوبة:

SELECT 
    f.path_file, 
    p.name_project, 
    s.Num_std, 
    s.Name_std, 
    s.Email_STD, 
    t.Name_teah, 
    d.Name_dept 
FROM 
    file_project f 
LEFT JOIN 
    projects p ON f.id_p = p.id_Pro 
RIGHT JOIN 
    student s ON p.Num_STD = s.Num_std 
RIGHT JOIN 
    teachers t ON s.id_teah = t.id_teah 
RIGHT JOIN 
    departments d ON t.id_dept = d.id_dept;

هذا الاستعلام يستخدم عمليات الانضمام لربط الجداول معا، و يتم الانضمام من جدول file_project إلى جدول projects باستخدام LEFT JOIN ومن ثم الانضمام بين الجدولين student و teachers و departments باستخدام RIGHT JOIN.

  • 0
نشر

يوجد بعض الاخطاء فى جملة الاستعلام لديك .

اولا يفضل استخدام left join فى جميع الاماكن وعدم الجمع بين right join و left join الا اذا دعت الحاجة وهنا لا يجب استخدام right join فانت فقط تريد ملفات المشاريع جميعها سواء كان الربط صحيحا او خاطئا ولا تريد باقى الجداول كاملة .

ثانيا هناك خطأ فى الربط بين جدول student و project فقد تم الربط بين Num_STD و id_std وليس Num_std .

والاستعلام الصحيح هو التالى 

SELECT
	f.path_file ,
	p.name_project,
	s.Num_std ,
	s.Name_std ,
	s.Email_STD ,
	t.Name_teah,
	d.Name_dept
FROM file_project f 
LEFT JOIN projects p on p.id_Pro = f.id_p 
LEFT JOIN student s ON p.Num_STD = s.id_std 
LEFT JOIN teachers t ON s.id_teah = t.id_teah 
LEFT JOIN departments d ON t.id_dept = d.id_dept;

 

  • 0
نشر (معدل)

انا اريد 

طباعة داخل سطر اخير تبع td كالتالي 

<td> <a herf="uploads/'.$row['path_file'].'">تحميل الملف </a></td>

هذا كود 

<table class="table table-striped table-responsive">
    <tr>
        <th style="text-align: right;"> رقم القيد</th>
        <th style="text-align: right;">اسم الطالب</th>
        <th style="text-align: right;">عنوان المشروع </th>
        <th style="text-align: right;">اسم القسم </th>
        <th style="text-align: right;">اسم المشرف </th>
        <th style="text-align: right;"> ملف المشروع </th>


    </tr>
    <?php
    require('config.php');
    $db = new db;
    $result = $db->getAllstudent();
    while ($row = mysqli_fetch_array($result)) {
        echo "<tr>
					<td>" . $row['Num_std'] . "</td>
					<td>" . $row['Name_std'] . "</td>
					<td>" . $row['name_project'] . "</td>
                    <td>" . $row['Name_dept'] . "</td>
                    <td>" . $row['Name_teah'] . "</td>
                   

				</tr>";
    }
    $db->closeCon();
    ?>
</table>

ممكن تعديل علي كود في سطر اخير بحيث يطبع 

تم التعديل في بواسطة AYMEN_1997
نسيت شي
  • 0
نشر
بتاريخ 20 ساعة قال محمد_عاطف:

يوجد بعض الاخطاء فى جملة الاستعلام لديك .

اولا يفضل استخدام left join فى جميع الاماكن وعدم الجمع بين right join و left join الا اذا دعت الحاجة وهنا لا يجب استخدام right join فانت فقط تريد ملفات المشاريع جميعها سواء كان الربط صحيحا او خاطئا ولا تريد باقى الجداول كاملة .

ثانيا هناك خطأ فى الربط بين جدول student و project فقد تم الربط بين Num_STD و id_std وليس Num_std .

والاستعلام الصحيح هو التالى 

SELECT
	f.path_file ,
	p.name_project,
	s.Num_std ,
	s.Name_std ,
	s.Email_STD ,
	t.Name_teah,
	d.Name_dept
FROM file_project f 
LEFT JOIN projects p on p.id_Pro = f.id_p 
LEFT JOIN student s ON p.Num_STD = s.id_std 
LEFT JOIN teachers t ON s.id_teah = t.id_teah 
LEFT JOIN departments d ON t.id_dept = d.id_dept;

 

ممكن تعديل علي جملة طباعة لكي اتمكن من طباعة ملف 

  • 0
نشر
<?php
    require('config.php');
    $db = new db;
    $result = $db->getAllstudent();
    while ($row = mysqli_fetch_array($result)) {
        echo "<tr>
					<td>" . $row['Num_std'] . "</td>
					<td>" . $row['Name_std'] . "</td>
					<td>" . $row['name_project'] . "</td>
                    <td>" . $row['Name_dept'] . "</td>
                    <td>" . $row['Name_teah'] . "</td>
                    <td><a href=\"download_script.php?file=uploads/" . $row['path_file'] . "\">تحميل الملف</a></td>
				</tr>";
    }

تم حل مشكلة 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...