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

السؤال

نشر

لدي استعلام تالي لماذا يظهر نتيجة فارغة رغم كل جدول به بيانات ومربوطه صحيح 

SELECT s.Num_std ,s.Name_std ,s.Email_STD ,p.name_project,t.Name_teah,d.Name_dept from projects p INNER JOIN student s on p.Num_STD=s.Num_std INNER JOIN teachers t on s.id_teah=t.id_teah INNER JOIN departments d on t.id_dept=d.id_dept;

 

4.png

انا اريد كم موضح في الصورة حقول تالية 

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

Recommended Posts

  • 0
نشر

يبدو انه يوجد اخطاء فى ربط الجداول . 

اولا من فضلك قم بتغير كلمة INNER JOIN الى LEFT JOIN فى اى مكان لديك فى ال query ومن ثم ارسال النتيجة لى .

وايضا هل يمكنك ارسال صورة لشكل هيكل الجداول وان امكن لبعض البيانات فيه .

  • 0
نشر

لا يوجد مطابقة بين أي طالب في جدول الطلاب (students) وأي مشروع في جدول المشاريع (projects).

هل يوجد سجلات في كل من جدول الطلاب وجدول المشاريع؟ أيضًا تحقق من أن حقل "Num_std" في جدول الطلاب مطابقًا لحقل "Num_std" في جدول المشاريع.

وربما هناك قيم null في حقل "Num_std" في جدول الطلاب أو حقل "id_teah" في جدول الطلاب أو حقل "id_dept" في جدول المعلمين.

جرب استخدام JOINs خارجية لعرض جميع السجلات من جدول واحد، حتى لو لم تكن هناك مطابقة في الجدول الآخر:

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

 

  • 0
نشر
بتاريخ 10 دقائق مضت قال محمد_عاطف:

يبدو انه يوجد اخطاء فى ربط الجداول . 

اولا من فضلك قم بتغير كلمة INNER JOIN الى LEFT JOIN فى اى مكان لديك فى ال query ومن ثم ارسال النتيجة لى .

وايضا هل يمكنك ارسال صورة لشكل هيكل الجداول وان امكن لبعض البيانات فيه .

لا يظهر شي غيرت left join

2.png

بتاريخ 7 دقائق مضت قال Mustafa Suleiman:

لا يوجد مطابقة بين أي طالب في جدول الطلاب (students) وأي مشروع في جدول المشاريع (projects).

هل يوجد سجلات في كل من جدول الطلاب وجدول المشاريع؟ أيضًا تحقق من أن حقل "Num_std" في جدول الطلاب مطابقًا لحقل "Num_std" في جدول المشاريع.

وربما هناك قيم null في حقل "Num_std" في جدول الطلاب أو حقل "id_teah" في جدول الطلاب أو حقل "id_dept" في جدول المعلمين.

جرب استخدام JOINs خارجية لعرض جميع السجلات من جدول واحد، حتى لو لم تكن هناك مطابقة في الجدول الآخر:

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

 

هادي نتيجة استعلام 

5.png

  • 0
نشر

مرفق صور جدوال  قاعدة بيانات 

1.png

2.png

3.png

4.png

بتاريخ الآن قال محمد_عاطف:

اذا جدول projects فارغ ولا يوجد به اى بيانات . وايضا الجداول الاخرى .

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

يوجد بيانات بكل جدوال قاعدة 

6.png

  • 0
نشر
بتاريخ 9 دقائق مضت قال AYMEN_1997:

هادي نتيجة استعلام 

 

لاحظ انه يوجد اخطاء فى ربط البيانات لذلك ظهرت فارغه الا اسماء المشاريع .

ما هو عمود Num_STD فى جدول projects هل هو عدد الطلاب ام ماذا ؟ واذا كان هو id الطالب اذا لماذا لم يتم ربطه ب id_std ؟

من فضلك قم بتجربة هذا الكود واخبارى بالنتيجة .

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

 

  • 0
نشر
بتاريخ 2 دقائق مضت قال محمد_عاطف:

لاحظ انه يوجد اخطاء فى ربط البيانات لذلك ظهرت فارغه الا اسماء المشاريع .

ما هو عمود Num_STD فى جدول projects هل هو عدد الطلاب ام ماذا ؟ واذا كان هو id الطالب اذا لماذا لم يتم ربطه ب id_std ؟

من فضلك قم بتجربة هذا الكود واخبارى بالنتيجة .

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

 

الله يرحم والديك تظهر كل حقول الي حقل name_project  وهو اهم حقل بالنسبة لي

لقطة شاشة 2024-04-02 135158.png

بتاريخ الآن قال AYMEN_1997:

الله يرحم والديك تظهر كل حقول الي حقل name_project  وهو اهم حقل بالنسبة لي

لقطة شاشة 2024-04-02 135158.png

يظهر بي null

  • 0
نشر
بتاريخ 1 دقيقة مضت قال محمد_عاطف:

اذا يوجد خطأ بربط جدول projects بجدول students لذلك من فضلك تاكد من ان الربط بين الجدولين صحيح .

انا في جدول الطلاب حقل num_std  هو حقل نوع int 11  فقط 

في جدول project  حقل num_std  مفتاح اجنبي int 11

بتاريخ الآن قال AYMEN_1997:

انا في جدول الطلاب حقل num_std  هو حقل نوع int 11  فقط 

في جدول project  حقل num_std  مفتاح اجنبي int 11

برايك ما حل مشكلة 

 

  • 0
نشر

اعتقد انك اخطأت فى ربط الجدولين حيث قمت بربطهم ب id_std الخاص بال students .

SELECT s.Num_std ,s.Name_std ,s.Email_STD ,p.name_project,t.Name_teah,d.Name_dept
FROM student s
LEFT JOIN projects p 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;

لذلك من فضلك قم بتجربة هذا الكود واخبارى بالنتيجة.

وايضا هل يوجد فى جدول students فى العمود Num_std قيمة تساوى 14 و 15 ؟

  • 0
نشر (معدل)

حقل num_std  في جدول الطلاب هو عبارة عن حقل رقم القيد 

لكن في جدول مشاريع 

3.png

بتاريخ 3 دقائق مضت قال محمد_عاطف:

اعتقد انك اخطأت فى ربط الجدولين حيث قمت بربطهم ب id_std الخاص بال students .

SELECT s.Num_std ,s.Name_std ,s.Email_STD ,p.name_project,t.Name_teah,d.Name_dept
FROM student s
LEFT JOIN projects p 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;

لذلك من فضلك قم بتجربة هذا الكود واخبارى بالنتيجة.

وايضا هل يوجد فى جدول students فى العمود Num_std قيمة تساوى 14 و 15 ؟

هذا الذي يوجد 

 

4.png

تم التعديل في بواسطة AYMEN_1997
  • 0
نشر

لاحظ كما اخبرتك انت قمت بالربط ب id_std  وليس Num_std 

image.png.8d6a08697e1c0fdb186cd6154584608f.png

بتاريخ 3 دقائق مضت قال محمد_عاطف:
SELECT s.Num_std ,s.Name_std ,s.Email_STD ,p.name_project,t.Name_teah,d.Name_dept
FROM student s
LEFT JOIN projects p 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
نشر
بتاريخ 7 دقائق مضت قال محمد_عاطف:

لاحظ كما اخبرتك انت قمت بالربط ب id_std  وليس Num_std 

image.png.8d6a08697e1c0fdb186cd6154584608f.png

وهذا الكود يجب ان يعمل معك 

يعمل اخي  محمد  بالله استفسار لماذا عملت left join  انا دراسها القصد منه موجود في جدول وغير موجود في جدول 

  • 0
نشر

يوجد عدة انواع من ال joing .

اولا ال inner joins ألتى كنت تستعملها مسبقا وهى فقط تقوم بارجاع نتيجة التقاطع فقط واى قيم لم يتم الربط بينهم او فارغين فلن يتم ارجاعهم .

اما ال LEFT و ال RIGHT فانك تخبر mysql بان يقوم بارجع الجدول كاملا سواء الجدول الذى يسار كلمة JOIN و يمينها حسب ما سوف تستخدم وبذلك سوف يقوم بارجاع  الجدول كاملا سواء كان الربط صحيحا او خاطئا . واذا كان صحيحا سيقوم بارجاع بيانات الجدول المربوط .

1.thumb.png.19d8e61b00d3685d7ab53397020324ce.png

لاحظ كما فى الصورة السابقة .

ويمكنك قراءة هذا الشرح على موقع wiki hasoub.

left join    و  inner join

  • 0
نشر

السلام عليكم 

انا لدي جدول file_project ملف مشروع به حقول تالية 

id_f مفتاح رئيسي 

id_p حقل نوعه int 

path_file حقل نوعه text 

اريد كيفية الربط مع جدول المشاريع projects  التي يتوجد به مفتاح رئيسي وهو id_pro 

 اريد تعديل علي جملة استعلام تالية لكي يجلب مسار ملف بمعني يجلب حقل path_file 

SELECT s.Num_std ,s.Name_std ,s.Email_STD ,p.name_project,t.Name_teah,d.Name_dept
FROM student s
LEFT JOIN projects p 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

 

 

 

لقطة شاشة 2024-04-02 211604.png

<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>
                     <td> <a herf="uploads/'.$row['path_file'].'"> تحميل ملف</a> </td>
				</tr>";
    }
    $db->closeCon();
    ?>
</table>

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...