PDA

View Full Version : سوال: نمایش زیر گروه ها در <option>



Root 007
یک شنبه 20 مهر 1393, 15:24 عصر
با سلام به همگی من دو تا جدول دارم که برای منو های سایتم هستش که به نام های main manu و sub menu هستش که در sub menu یک فیلد parent_id وجود داره که id های main menu که در واقعه منو های اصلی هستن بهم ارتباط دادم و اونهارو INNER JOIN کردم خیلی هم خوب ولی میخوام حاصل بدست اومده رو در <select> و <optgroup> , <option> نمایش بدم به طوری که منو های اصلی در optgroup باشن و زیر منو های هر کدوم از انها داخل option قرار بگیرین و اینکار به صورت داینمایک اجرا بشه ولی نمیدونم دقیقا چطوری این دسته بندی ها رو اینطور نمایش بدم

ممنون میشم اگه راهنماییم کنید
اینم عکس مربوط به join این دو جدول
124475

Root 007
یک شنبه 20 مهر 1393, 18:55 عصر
کمک کنید خواهشا

alireza.stack
یک شنبه 20 مهر 1393, 19:42 عصر
دو تا کوئری بزنید:

۱- کوئری اول فقط Top level menu items رو بیرون می کشد با ID اونا. خروجی رو تو یه آرایه ذخیره کنید. یه foreach بنویسید که تو این آرایه پیمایش کنه و id و value اونارو بیرون بکشه و تو optgroup نشون بده.

۲- در همین حلقه که ایجاد کرده اید id بدست آمده در foreach رو به کوئری دوم خود بفرستید و اونایی رو فقط select کنید که parent_id برابر با اون ID رو دارند و خروجی رو در option ها نمایش بدید.

Root 007
یک شنبه 20 مهر 1393, 19:53 عصر
دو تا کوئری بزنید:

۱- کوئری اول فقط Top level menu items رو بیرون می کشد با ID اونا. خروجی رو تو یه آرایه ذخیره کنید. یه foreach بنویسید که تو این آرایه پیمایش کنه و id و value اونارو بیرون بکشه و تو optgroup نشون بده.

۲- در همین حلقه که ایجاد کرده اید id بدست آمده در foreach رو به کوئری دوم خود بفرستید و اونایی رو فقط select کنید که parent_id برابر با اون ID رو دارند و خروجی رو در option ها نمایش بدید.
به خاطر فشار به سرور نمیخوام اینکارو بکنم میخوام به یک کوئری انجام بشه اینش برام مهمه

alireza.stack
یک شنبه 20 مهر 1393, 20:05 عصر
شما کل داده ها رو که فچ کردی داخل یه result ذخیره کن حالا با کد زیر بیای اونهایی که parent_id تکراری دارن رو پاک کن و بریز تو یه آرایه دومی مثلا parentMenus::



foreach($arr as $key=>$val) {
$res2[$val] = true;
}
$res2 = array_keys($res2);

تابع array_unique هم هست اما کد بالا سریعتر است. :-))))

خب حالا مقادیر res2 رو بزن تو select هات و یه حلقه داخل اون بزار (داخل select) که بیای تو متغیر result بچرخی و اونایی که parent_id برابر با مقدار res2 داره (که تو حلقه اندیسش رو بیرون کشیدی) تو option چاپ کنه.

Mohammadsgh
یک شنبه 20 مهر 1393, 20:21 عصر
دو تا جدول نیاز نیست.شما میتونید یه جدول menu بزارید که menu_id جدول post با id جدول menu با هم دیگه foriegn key میشه.و تو جدول menu دو فیلد parent_id با id با هم foriegn key میشن که اگه parent_id صفر بود یعنی منوی اصلی و اگر زیر دسته بود id جدول menu بهش داده میشه

Root 007
یک شنبه 20 مهر 1393, 21:05 عصر
دوستان درست شد مرسی از alireza.stack

reza_101010
دوشنبه 21 مهر 1393, 23:26 عصر
http://stackoverflow.com/questions/18731807/how-to-create-unlimited-sub-category-in-drop-down-list