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

كيف أجلب مشاركات الأعضاء الذين أتابعهم في SQL؟

سعيد يوسف

السؤال

أحاول تقليد تطبيق تويتر، وأريد عرض مشاركات المستخدمين الذين أتابعهم حيث لدي 3 جداول بالشكل التالي:

مستحدمين
Users: id
علاقة المتابعات
Follows: user_id, follower_id
المنشورات
Posts: user_id

 

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

Recommended Posts

  • 1
  • نجلب كل البيانات (جيدة للتجريب)
  • نربط جدول المستخدمين مع جدول المتابعة بالاعتماد على حقل رقم المستخدم (معرف المستخدم)
    • في أول ربط جلبنا من نقوم بمتابعتهم
  • ثم نقوم بعمل ربط جديد مع جدول المنشورات
    • لجلب المنشور لشخص نقوم بمتابعته
  • ثم نقوم بفلترة النتائج حسب رقم المستخدم الحالي
SELECT * 
FROM USERS u
JOIN FOLLOWS f

ON (u.id = f.user_id) 

JOIN POSTS p
on (f.follower_id = p.user_id) 

WHERE u.id = $id

 

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

  • -1

لجلب البيانات من عدة جداول مترابطة مع بعضها بعلاقة ما , نقوم باستخدام inner join بحيث تسمح لنا inner join بجلب البيانات بناء على العلاقة التي قمنا بإنشائها بين الجداول و في حالة استخدام لغة PHP يمكنك من جلب البيانات من خلال الكود التالي 

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// الاتصال بقاعدة البيانات
$conn = new mysqli($servername, $username, $password, $dbname);
// التحقق من الاتصال بقاعدة البيانات
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM USERS u JOIN FOLLOWS f ON (u.id = f.user_id) JOIN POSTS p on (f.follower_id = p.user_id) WHERE u.id = $id";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    
    while($row = $result->fetch_assoc()) {
        echo "<br> id: ". $row["id"]. " - Name: ". $row["name"]. " " . $row["email"] . "<br>";
    }
} else {
    echo "لا توجد بيانات لعرضها";
}

$conn->close();
?>

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...