PDA

View Full Version : کمک در ساخت لیست دوستان



amir6268
پنج شنبه 17 بهمن 1392, 00:10 صبح
سلام
من یه قسمت برای لیست دوستان ساختم ...

فقط تنها مشکلم اینه چطوری از اینکه یک نفر یکیو چند بار بذاره تو لیستش جلوگیری کنم؟
مثلا به یکی درخواست میده اون هم تایید میکنه. باز میتونه درخواست بده اگر باز هم تایید بشه دوبار اسمش میاد تو لیست دوستانش ...
از خود دیتابیس از گذاشتنش اطلاعات تکراری جلوگیری کردم ولی الان باز مشکلی که پیش اومده اینه که مثلا یک نفر کاربر X رو میذاره تو لیست دوستاش دیگه یکی دیگه نمیتونه کاربر x رو بذاره تو لیستش ...

چون دیتابیس از ثبت اطلاعاتش جلوگیری میکنه ..


یه راهنمایی میکنید؟

shahriyar3
پنج شنبه 17 بهمن 1392, 00:33 صبح
خوب قبلش چک کن با یه کوئری که کاربر X با کاربر Y دوست نباشن!!

SadeghPro19
پنج شنبه 17 بهمن 1392, 00:40 صبح
یه جدول بسازید مثلا به اسم users_friend بعد فیلدهای id , uid , fid رو میزاری حالا اگه اطلاعات دیگه ای هم خواستی میتونی فیلد براش بزاری.
فیلد id که مشخصه
فیلد uid آیدی یوزر هست که دوست رو توی لیستش اضافه کرده
فیلد fid هم آیدی یوزری هست که به عنوان دوست اضافه شده
خب حالا وقتی مثلا دوستی رو ثبت کردی دیگه دکمه افزودن به عنوان دوست رو نشون نمیدی...
و برای نمایش هم میای ایدی یوزری که توی پروفایلش هستیم و میخوایم لیست دوستاش رو ببینیم چک میکنی توی جدول users_friend هرچی ایدی برابر با ایدی بود رو میکشی بیرون حالا دوباره یه حلقه دیگه میزاری و توی جدول users چک میکنی آیدی fid رو برابر با اون بود اطلاعاتی رو که میخوای تو صفحه نشون بدی رو توی آرایه یا متغییر میریزی و در آخر چاپ میکنی.

amir6268
پنج شنبه 17 بهمن 1392, 02:50 صبح
شهریار جان خسته نباشی اینقدر توضیح دادی :دی

صادق مرسی فقط یه سوال با دستور if میشه لیست دوستان رو تو پروفایل هر کاربر نمایش داد. اینکارو هم انجام دادم. فقط میخواستم ببینم چطوری میشه اون دکمه اضافه شود به لیست دوستان رو بعد از اینکه به لیستش اضافه شد دیگه بهش نمایش نده؟؟

مثلا با دستور if میشه چک کرد که اگه user id اون کاربر با uid یکی بود fid رو نمایش بده ...
ولی اگه بخوایم دکمه اضافه کردن به لیست دوستانو حذف کنیم از چه کدی میشه استفاه کرد؟

amir6268
پنج شنبه 17 بهمن 1392, 11:46 صبح
پلیز کمک :دی

SadeghPro19
پنج شنبه 17 بهمن 1392, 15:31 عصر
خب الان شما فرض کن توی پروفایل ali هستی و این یوزر توی جدول به عنوان دوست شما اضافه شده خب میای یه دستور if میزاری که اگه ایدی صفحه پروفایلی که داخلش هستیم با fid خودمون یکی بود نشون نده.
فرض میکنیم این جدولها و رکورد ها رو داریم:

Table Users
id name
1 ali
2 reza

Table users_friend
id uid fid
1 1 2
اینم از کدهای مربوط به PHP:

$_Session['user_logined_id'] = 1;
$query = mysql_query('Select * into users_friend Where uid='.$_Session['user_logined_id']);
$id = $_GET['user_profile_id'];
$add_friend_button_show = true;
while($row = mysql_fetch_assoc($query)){
if($row['fid'] == $id){
$add_friend_button_show = false;
break;
}
}

if($add_friend_button_show){
//do button show
}
خط اول کد که مربوط به سشنی هست که موقع لاگین از یوزر وارد شده داریم.
خط دوم کئوری مربوط به جدول دوستان هست که اطلاعاتش رو برای چک کردن لازم داریم.
خط سوم مربوط به آیدی دریافتی از طرف مرورگر هستیم یا همون آیدی پروفایل دوستمون.
خط چهارم یک متغیر تعریف کردم که بعدا باهاش چک میکنیم که اگه مقدار true داشت دکمه را نشان دهیم.
خط ششم چک میکنیم که اگه ایدی صفحه ای که درونش هستیم با درون جدول لیست دوستانمون وجود داشت یعنی که ما با طرف دوست شدیم.
خط هفتم متغیری که برای تعین نمایش دکمه ایجاد کرده بودیم رو با false مقدار دهی میکنیم که دکمه رو نشون نده.
خط هشتم از حلقه میایم بیرون چون دیگه دلیلی نداره بخوایم تو حلقه بمونیم.
خط دوازده هم چک میکنیم اگه متغییر مقدار صحیح یا همون true داشت دکمه رو نشون میدم وگرنه که کاری نداریم..:D