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

السؤال

نشر

السلام عليكم

في هذا البرنامج هناك قائمة منسدلة تظهر اخر رسالة للعضو

<?php
$stmt = $db->prepare('SELECT * FROM(SELECT * FROM messages WHERE recipient_id=? GROUP BY id DESC) as T GROUP BY T.sender_id ORDER BY id DESC');
$stmt->bind_param('i',$_SESSION['id']);
?>

ويتم عرض الرسائل في صفحة اخرى كالتالي

<?php
$stmt = $db->prepare('SELECT * FROM messages WHERE recipient_id =? AND sender_id=? OR recipient_id=? AND sender_id=? Order By id ASC');
$stmt->bind_param('iiii',$_SESSION['id'],$_GET['msgs'],$_GET['msgs'],$_SESSION['id']);
?>

والسؤال - كيف نربط كل كود منهم الخاص بجدول messages  نربطه بجدول الأعضاء accounts

انا لا اعرف كيف ندمج لهم هذا الكود ان كان الكود صحيحا ايضا ام لا

<?php
$stmt = $db->prepare('SELECT m.*, a.* FROM `messages` as m inner join `accounts` as a WHERE a.id=m.recipient_id AND a.id =m.sender_id');
?>

 

Recommended Posts

  • 1
نشر

لربط جدولين أو أكثر نستخدم join وفي هذه الحالة يمكننا ربط الجدولين بهذا الشكل 

$stmt = $db->prepare('SELECT m.*, a.* FROM `messages` as m inner join `accounts` as a WHERE a.id=m.recipient_id OR a.id =m.sender_id');

لاحظ أنه كان لديك خطأ في الاستعلام و هو تشابه الشرط 

WHERE a.id=m.recipient_id AND a.id =m.sender_id'

فيجب أن يكون الشرط هنا من نوع OR  وليس AND لأنه لو لم تقم بتحويله OR ستحدث معك مشكلة و هي أنه لا يمكن الحقل id يساوي الحقلين recipient_id و sender_id معاً 

  • 0
نشر
بتاريخ 4 ساعات قال بلال زيادة:

هل ممكن توضح مقصدك بأي كودين تريد دمجهم ؟ 

اقصد ان الكود الاخير يظهر جميع الرساءل من جدول الرسائل كيف نجعلة يظهر اخر سالة للعضو كما في الكود الاول والمحادثة بين المرسل والمستقبل في الكود الثاني

  • 0
نشر
بتاريخ On 17‏/8‏/2021 at 13:47 قال Hamada Ahmed:

اقصد ان الكود الاخير يظهر جميع الرساءل من جدول الرسائل كيف نجعلة يظهر اخر سالة للعضو كما في الكود الاول والمحادثة بين المرسل والمستقبل في الكود الثاني

يجب إضافة ORDER BY DESC و تحديد كم صف يجلب عن طريق LIMIT 1 , ولاحظ ان رقم 1 هو عدد الصفوف الذي نود جلبها عند تنفيذ الأستعلام, يمكنك تجربة تنفيذ ذلك و أخباري بالنتيجة.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...