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

من یک تیبل در دیتابیس دارم که دراون تعدادی کاربر هستش.ودریک بخشی از اون تیبل کد معرفشون قرار داره.میخوام وقتی کاربری با لینک معرف کاربری وارد شد اگر کاربر حداکثر تعداد زیرمجموعه رو داشت.فعال ترین کاربر انتخاب و به عنوان زیرمجموعه اون ذخیره بشه اگر زیرمجموعه اون هم تکمیل بود به عنوان زیرمجموعه فعال ترین زیرمجموعه اون ذخیره شود و...
اگر دوستان روشی بلد هستند ممنون خواهم شد که ارائه بدن.
پاسخ
تشکر شده توسط:
#2
دوست عزیز شما علاوه بر جدول user به جدول دیگه ای برای نگهداری این ارتباطات نیاز دارید که اون جدول دو فیلد داره parent_user و child_user 
حالا شما توی اکشن ثبت نام بصورت متد GET آی دی parent_user  رو به فرم میدین این فیلد میتونه مخفی باشه. و سپس آی دی گرفته شده و آی دی جدید در جدول مذکور ذخیره میشن. 
اما در ذخیره این ارتباطات به شرطی که گفتید نیاز دارید. که با یک کوئری ساده تعداد parent_user های ثبت شده با این آی دی استخراج میشه و اگر کمتر از مقدار مورد نظر شما بود روال عادی کار اجرا میشه .
وگرنه کوئری میزنید و تمام id های زیر مجموعه این یوزر رو بدست میارید(child_user ها) حالا  یه متغیر max=0و یه متغیر id  تعریف میکنیم و دستور foreach  که درون اون مجددا کوئری میزنیم
و تعداد parent_user های با مقدار item حلقه(که همون id زیر مجموعه هاست) رو بدست میاریم و هر بار این تعداد با max مقایسه میشه اگر بزرگتر بود  که جایگزین max میشه و id=item  میشه در آخر مقدار متغیر  id زیر مجموعه با بیشترین تعداد زیر مجموعه هست و به عنوان parent_user ثبت میشه . حالا شما میتئنید با این ایده گسترشش بدید
البته بصورت کلی گفتم قطعا دارای ایراداتی خواهد بود. و صد البته راه حل های بهتری هم وجود دارند
پاسخ
تشکر شده توسط:




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