• 0

ربط جدولين في قاعدة البيانات في PHP

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

الاول users   يحتوي  id    ومعلومات العضو اسم وايميل وغيره

الجدول الثاني chat  يحوي  sender_id   هو نفسه ال id   في جدول   users

كيف يمكن ربط الجدولين عند الاستعلام بحيث يتم  عرض الرسالة من chat     وعرض معلومات العضو من   users

<?php
$stmt = $db->prepare('SELECT * FROM chat');
$stmt->execute();
$result = $stmt->get_result();
$count = mysqli_num_rows($result);
?>
<?php if ($count > 0) : ?>
<?php while ($row = $result->fetch_assoc() ): ?>
<?= $row['message'] ?> ">
....
....
<?php endwhile; ?>
<?php endif; ?>
............................
<?php
$stmt = $db->prepare('SELECT * FROM users');
$stmt->execute();
$result = $stmt->get_result();
$row_accounts = $result->fetch_assoc(); 
$stmt->close();
?>

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

سوف نقوم باستخدام inner join للربط بين الجدولين فيمكنك استخدام inner join بهذا الشكل 

"SELECT c.*, u.* FROM `chat` as c inner join users as u WHERE u.id = c.sender_id ORDER BY `id` DESC LIMIT 50";

ففي حالة الكود الخاص بك يتم تنفيذ هذا الاستعلام 

$stmt = $db->prepare("SELECT c.*, u.* FROM `chat` as c inner join users as u WHERE u.id = c.sender_id ORDER BY `ID` DESC LIMIT 50");

ومن ثم يمكنك الوصول إلى جميع الحقول بداخل الجدولين أو يمكنك تحديد مثلاً جميع حقول جدول ما و حقل من الجدول الثاني بهذا الشكل  

$stmt = $db->prepare("SELECT c.*, u.name FROM `chat` as c inner join users as u WHERE u.id = c.sender_id ORDER BY `ID` DESC LIMIT 50");

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

لكي تربط جدولين لديهما حقل مشترك, يمكنك استعمال JOIN او INNER JOIN. حيث يجب ان يكون الحقل من نفس النوع,

$sql = "SELECT  * from chat INNER JOIN users on users.id=chat.sender_id";

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن