View Full Version : سوال: مرتب سازی جدول منو
makhondi
شنبه 22 شهریور 1393, 10:01 صبح
سلام
جدول زیر برای ذخیره منو و زیر منو هستش .
و می خوام در زمان کوئری گرفتن به صورت زیر مرتب بشه :
یعنی اول بر اساس ID مرتب بشه و برای هر ID اگر Idparent مشابه پیدا شد زیر آن نمایش دهد.
makhondi
شنبه 22 شهریور 1393, 11:55 صبح
لطفا کسی راهنمایی کنه
miladamirzadeh
شنبه 22 شهریور 1393, 19:49 عصر
سلام دوست عزیز. من نتوانستم منطق مرتب سازی ای که شما عکسش را در اینجا قرار داده اید درک کنم. مثلاً چرا 2و0 زیر 1و0 قرار نگرفته است؟ اگر این منطق را بیشتر توضیح دهید قطعاً بیشتر به شما می توانیم کمک کنیم.
makhondi
شنبه 22 شهریور 1393, 20:43 عصر
سلام دوست عزیز. من نتوانستم منطق مرتب سازی ای که شما عکسش را در اینجا قرار داده اید درک کنم. مثلاً چرا 2و0 زیر 1و0 قرار نگرفته است؟ اگر این منطق را بیشتر توضیح دهید قطعاً بیشتر به شما می توانیم کمک کنیم.
فرض کنید این جدول برای ذخیره منوی ابتدای سایت هستش که :
آن رکوردهایی که مقدار idparent=0 دارند یعنی منوی اصلی هستند.
من دستور sql می خواهم که بتوان هر رکوردی ابتدا جدول را براساس عنوان مرتب کند ، سپس
حال رکورد هایی که idparent=0 دارند باید یکی یکی نمایش داده شوند ( که هر کدام id مثل 1.2.3.8.11.12.13 دارند) ،
و حال بین نمایش هر کدام از این رکورد ها بایستی رکورد هایی نمایش داده شوند که idparent آنها با id رکورد مد نظر برابر باشد.
------
Menu=A id=1 idparent=0 | Menu=B id=2 idparent=0
Menu=D id=4 idparent=1 ----
Menu=E id=5 idparent=1 ----
فکنم کافیه : مگه شما برای نمایش منوهای سایتتون که داخل یک جدول هستش و زیر شاخه هم داره چیکار می کنید. فقط لطفا دستور SQL بگید با php بلدم
makhondi
یک شنبه 23 شهریور 1393, 18:17 عصر
هیچ کسی بلد نیست :عصبانی++:
mohammad reza beizavi
یک شنبه 23 شهریور 1393, 18:23 عصر
درود بر شما
جدولت رو با خودش join بزن
اگر نمی دونید چطور میشه، یه dump از جدولت بذار و بگو دقیقا نتیجه می خوای چی بشه تا بهت بگم چی بنویسی
mohammad reza beizavi
یک شنبه 23 شهریور 1393, 18:51 عصر
آفرین به این همه سرعت، معلومه عجله دارید. ببین منظورت اینه؟
SELECT * from Menu m1
left JOIN Menu m2
ON m1.Id = m2.idp
order by m1.id;
makhondi
دوشنبه 24 شهریور 1393, 11:05 صبح
آفرین به این همه سرعت، معلومه عجله دارید. ببین منظورت اینه؟
SELECT * from Menu m1
left JOIN Menu m2
ON m1.Id = m2.idp
order by m1.id;
مثل جدولی که من مس خواستم نشد
ali.shahrivarian
دوشنبه 24 شهریور 1393, 11:34 صبح
بهتره از groupBy استفاده کنی. بر اساس کد پدر سطر گروه بندی کنی و بعد گروه رو بر اساس نشانه مرتب کن.
SELECT * from dbo.sample
GROUP BY `idP`
ORDER BY 1 DESC
mohammad reza beizavi
سه شنبه 25 شهریور 1393, 08:23 صبح
مثل جدولی که من مس خواستم نشد
درود بر شما
نشد رو که نباید اینجور بذارید. بگید می خواستم اینجوری بشه (با مثال یا همون عکس) ولی نشد. اینجوری شده (بازم مثال).
اما بهتره کوئری رو دست کاری کنید تا به نتیجه دلخواهتون برسید.
پیروز باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.