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

السؤال

نشر

السلام عليكم، اريد عمل منشورات واعجاب بالمنشورات، ولكن هناك امر اود معرفته وهو ماهي الطريقه الصحيحه   للتحقق من ان المستخدم معجب بالمنشور او لا، مثلا اذا ليس معجب نعرض له زر الاعجاب واذا كان معجب نعرض لع زر الغاء الاعجاب.

مثلا لو كان لدي الجداول التاليه
جدول المستخدمين user
وفيه الاعمده التاليه
id و name
جدول المنشورات post
وفيه الاعمده التاليه
post_id و عمود id_user لربطه مع العمود id  في جدول المستخدمين
والجدول الاخير جدول الإعجابات like
وفيه الاعمده التاليه
like_id والعمود id_post لربطه مع العمود post_id في جدول المنشورات
والعمود id_user لتخزين اي دي المستخدم المعجب بالمنشور

السؤال هل يمكن بناء استعلام sql واحد لربط الجدوال والتحقق من ان المستخدم معجب بالمشور اولا
بالنسبه لربط الجداول يمكن يكون سهل ولكن معرفة اذا كان المستخدم معجب بالمنشور او لا هو الصعب ولا اعرف كيف افعل ذلك باستعلام واحد، قديما كنت افعل استعلامين منفصلين  اي يعني اعرض البوستات وداخل حلقة التكرار اعمل استعلام اخر للتحقق من ان المستخدم معجب او لا ولا اعرف هل هذه الطريقه الصحيحه او ان هناك استعلام واحد يحقق المطلوب .

Recommended Posts

  • 0
نشر

الفكرة كلها تتمحور حول شرط:

  • اعجاب المستخدم بالمنشور او لا.

والذي يترجم الى: 

  • امتلاك المستخدم المعني لسطر في جدول likes بـ post_id المنشور المعني.

يمثل بالاستعلام:

$currentUserId = ..;
$targetPostId = ..;

$sql = "SELECT * FROM likes WHERE user_id = ${currentUserId} AND post_id = ${targetPostId}";

الآن لن تحتاج الا للتحقق من اعادة هذا الاستعلام لنتائج او لا:

$conn = new mysqli("host", "username", "password", "database");

$currentUserId = ..;
$targetPostId = ..;

$sql = "SELECT * FROM likes WHERE user_id = ${currentUserId} AND post_id = ${targetPostId}";
$result = $conn->query($sql);

if (mysqli_num_rows($result) > 0) {
    echo "المستخدم معجب";
} else {
    echo "المستخدم غير معجب";
}

الآن سيمكن استعمال هذا الشرط لعرض وتصيير زر الاعجاب.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...