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

استفسار حول نتيجة استعلام

ايمن ميلاد

السؤال

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

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

هادي جملة استعلام كل حقول تظهر به بيانات الي حقلي مسار ملف واسم المشروع تظهر بي 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

اخي Chihab Hedidi جربت نتيجة استعلام تبعك لزال يظهر حقلي path_file  و name_project  بي null  وباقي حقول تظهر

1.png

تم التعديل في بواسطة AYMEN_1997
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...