PDA

View Full Version : نحوه ی نمایش به ترتیب در PHP



parsserver2
دوشنبه 10 آذر 1399, 19:50 عصر
سلام دوستان گلم من یه فرم دارم به این شکل:

152555

بنده سه تا جدول درست کردم یکیش title دومی fields و سومی هم اگر فیلدها سلکت باکس بودن گزینه هاش رو اونجا بزارم fields_values
عکسی که برای شما گزاشتم فقط یکی از تب های موجود تو فرم هستش و کلا 7 تا تب داره! من اومدم تو جدول این هفتا تب رو به این صورت ذخیره کردم:

152556

بعضی از فیلد ها دسته جمعی قرار گرفتن و پایینش هم زده add another + برای این قسمت ها یک اسم گزاشتم و تو جدول title قرار دادم و parent رو آی دی title اصلی گزاشتم به این خاطر که هنگام طراحی فرم و کد نویسی مشخص کنم اگر فیلدهای دریافتی مربوط به پرنت 0 نبودن مثلا border داشته باشن و زیرشون گزینه ی add another + داشته باشه!

152557

و فیلد ها رو هم به این صورت ذخیره کردم:

152558

تا اینجا همه چی اوکیه... برنامه بیشتر به صورت فانکشنال نوشته شده..اولین فانکشن مربوط به دیریافت title هاست به اسم:
fn_get_account_profile_titles ($parent = 0)
اول تایتل هایی که پرنت 0 دارن و در ادامه ی foreach آرگومان parent رو برابر با آی دی تایتل اصلی کردم که پرنت هاش رو هم نشون بده.. تا اینجای کار همه چیز اوکیه. مشکل اصلی من نشون دادن فیلد هاست.. من برای دریافت فیلدها فانکشن :
fn_get_account_profile_fields ($title_id) نوشتم که تایتل آی دی رو میگیره و نمایش میده یه چیز دیگه ام بگم اینه که ترتیب title ها و fields ها رو با position مشخص کردم و موقع کوئری زدن order by position ASC رو نوشتم! حالا اینجا اگر من با این فانکشن فیلد هارو بگیرم چجوری میشه؟ یعنی اول باید فیلد های تایتل اصلی رو بگیرم بعد دوباره فیلد های هرکدوم از پرنت ها؟؟ درصورتی که من نمیخوام به این صورت باشه چون اگر به تصیر فرم و یا تصویری که از filelds ها گزاشتم نگاه کنید فیلد هایی که مربوط به تایتل اصلی هستن یدونه اول قرار میگیره دومی مثلا بعد از پرنت 9 سومی بعد از پرنت 11! ولی وقتی من میخوام فیلدهارو دریافت کنم همشون به ترتیب میان مثلا تایتل اصلی همشون رو میگیره و اول اونارو نشون میده. بعد به ترتیب پرنت هارو..
ببخشید اگر نتونستم سوالم رو واضح و رسا بیان کنم..پیشاپیش ممنونم از جوابتون.....

plague
سه شنبه 11 آذر 1399, 16:06 عصر
شاید اگه کدت رو کامل بزاری و خروجیش رو هم نمایش بدی کمک کنه
چون اینجوری الان سخته درک مشکل بدون دیدن کد ها و نتیجه خروجیشون

من درک کاملی ندارم از کد و مشکلت ولی فکر میکنم نیازی به positin نداشته باشی
فیلد ها به ترتیب توی دیتابیس رخته میشن و آیدیشون همون ترتیب رو رعایت میکنه
از همین آیدی میشه برا مرتب سازیشون استفاده کرد