• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
چطور پست تعداد نامشخصی از کاربران رو از دیتابیس استخراج کنم ؟
#1
به نام خدا

سلام دوستان،
من با php و mysql کار میکنم،میخوام از داخل دیتابیس تمام مطالبی رو که دوستان یک کاربر ارسال کرده اند استخراج کنم،برای این کار به چه صورت باید عمل کنم؟ (برای ارتباط با دیتابیس از Mysqli استفاده می کنم.)

دیتابیس من 3 تا تیبل داره که به این صورت هست،تیبل Users که اطلاعات کاربران ذخیره میشه به صورت زیر:

[عکس: user.png]

تیبل content که پست های کاربران در اون نگهداری میشه،به صورت زیر:

[عکس: post.png]

تیبل Friends که روابط کاربران مشخص میشه،اینکه چه کاربر با چه کاربری دوست هست،به صورت زیر:
(در جدول زیر کاربر 1 با کاربر 2 و 3 دوست هست
و کاربر 3 فقط با کاربر 2 دوست هست)

[عکس: friends.png]

حالا به عنوان مثال من میخوام پست هایی که دوستان کاربر 1 ارسال کرده اند رو از دیتابیس دریافت کنم،به چه صورت باید عمل کنم ؟
ممنون میشم راهنمایی کنید.
  پاسخ
تشکر شده توسط :
#2
دوستان کار رو تا یجا پیش بردم،فقط میشه یکی توضیح بده کوئری زیر چیکار میکنه دقیقا ؟

کد:
SELECT * FROM table WHERE id IN (5,4,3,1,6)

میخوام یه کوئری بنویسم و بگم هرجا id کاربر برابر با 2 یا 3 یا 4 یا 5 بود اطلاعات جدول رو بریز داخل یک متغییر.کوئریش یه چیزی شبیه بالایی باید باشه.
  پاسخ
تشکر شده توسط :
#3
نقل قول: حالا به عنوان مثال من میخوام پست هایی که دوستان کاربر 1 ارسال کرده اند رو از دیتابیس دریافت کنم،به چه صورت باید عمل کنم ؟

ساب کوئری
کد:
select * from content where userid in (select person2 from friends where person1=1)

جوین
کد:
select content.* , friends.person2 on content join friends on content.userid = friends.person2 where friends.person1=1
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : Crashday ayoubsys
#4
(۱۳۹۶ اردیبهشت ۰۳, ۰۲:۳۶ ق.ظ)Reza نوشته:
نقل قول: حالا به عنوان مثال من میخوام پست هایی که دوستان کاربر 1 ارسال کرده اند رو از دیتابیس دریافت کنم،به چه صورت باید عمل کنم ؟

ساب کوئری
کد:
select * from content where userid in (select person2 from friends where person1=1)

جوین
کد:
select content.* , friends.person2 on content join friends on content.userid = friends.person2 where friends.person1=1

آقا خیلی عالی بود،لذت بردم واقعا Heart ، روشی که خودم مساله رو حل کردم 8،7 خط کد شد Big Grin
یک سوال دیگه هم داشتم،فرض کنید مقدار postid از ورودی دریافت میشه،حالا من میخوام اطلاعات مربوط به اون postid مثل text و userid از جدول content و همچنین name و family کسی که اون پست رو ارسال کرده از جدول users استخراج بشه،به چه صورت باید عمل کنم ؟
  پاسخ
تشکر شده توسط :
#5
کد:
select content.text,content.userid , content.postid , users.name , users.family
from content
left join users
on content.userid=users.userid
where content.postid=1
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : Crashday ayoubsys


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان