PDA

View Full Version : ترتیب بندی لیست خروجی



sajadpm
سه شنبه 17 دی 1392, 23:14 عصر
با سلام خدمت اساتید گرامی

من یک لیستی دارم که دائما بهش اضافه یا کم می شود ! حالا می خواهم ترتیب بندی این لیست بر اساسی که خودم مشخص می کنم از دیتابیس خارج بشه مثال اگر 4 تا آیتم :

آیتم 1
آیتم 2
آیتم 3
آیتم 4

هست به این صورت خروجی بگیرم :

آیتم 3
آیتم 1
آیتم 4
آیتم 3

که اگر یک آیتم 5 به آنها اضافه شد مثال بتوانم به این صورت خروجی بگیرم :

آیتم 3
آیتم 1
آیتم 5
آیتم 4
آیتم 3

راه حلی پیشنهاد دارید ؟

trasilver
سه شنبه 17 دی 1392, 23:26 عصر
خوب ببینید اگه از دیتابیس استفاده می کنید می تونید با استفاده از ORDER BY `x` DESC یا ASC حدودا چیزی که می خواید رو بدست بیارید.
البته چیز هایی که شما نوشتید منطقی برای نمایش نداره!
عدد 1 یه جاست عدد 2 اصلا نداره دوبار عدد 3 تکرار شده و ... :گیج:
http://dev.mysql.com/doc/refman/5.0/es/order-by-optimization.html
http://www.mysqlperformanceblog.com/2006/09/01/order-by-limit-performance-optimization/

sajadpm
چهارشنبه 18 دی 1392, 00:32 صبح
فکر می کنم منظورم رو بد رسوندم .. من می خوام روشی رو معرفی کنید بهم برای ترتیب بندی مثال یک آیتم شناسه ای داشته باشه که بر اساس اون ترتیب نمایش بدیم حالا اون شناسه باید به چه صورت باشه که وقتی آیتم جدید اضافه کنیم نخواد شناسه تمامی آیتم های ایجاد شده رو عوض کنیم برای جای دادن آیتم جدید قبل آیتم های موجود ! ( اگر از آی دی استفاده کنم برای ترتیب نمایش نمی توانیم که آی دی تک تک آیتم ها رو عوض کنم تا آیتم جدید بیاد قبل آیتم های موجود ! )

trasilver
چهارشنبه 18 دی 1392, 00:57 صبح
خوب شما از توی دیتابیس باید آی دی آیتم که مد نظرتون هست extra اون رو بر روی AUTO_INCREMENT قرار بدید که موقع insert خودش یک آی دی مد نظر می گیره براش.
مثلا یدونه آیتم اضافه کردید خودش 1 رو بهش اختصاص میده. یکی دیگه وارد کنید 2 رو بهش اختصاص میده و...
بعدش می تونید از طریق ORDER BY `id` ASC شروع به گرفتن آیتم ها از آی دی 1 تا هر چند که ثبت شده باشه بکنید

sajadpm
جمعه 20 دی 1392, 19:26 عصر
باز هم منظور من این نبود :(

بزارید بر روی پروژه توضیح بدهم : من یک لیست قیمت دارم مثال :

یک ماه - 3 گیگ
سه ماه - 6 گیگ
شش ماه - 6 گیگ
یک ساله - 30 گیگ
حالا می خواهم اگر بعدا بخواهم یک تعرفه دیگر به این قسمت مانند :
شش ماه - 3 گیگ
اضافه کنم دقیقا بیاد جایی قرار بگیره که من می خوام . در حقیقت بشه ترتیب بندی تعرفه هارو جوری که می خواهم تعریف کنم !

sajadpm
پنج شنبه 26 دی 1392, 13:45 عصر
سلام دوباره ، دوستان یعنی کسی نبود راهنمایی ام کنه :-(

MMSHFE
پنج شنبه 26 دی 1392, 15:10 عصر
از ORDER BY FIELD توی MySQL استفاده کنید. مثال:
SELECT * FROM `table` ORDER BY FIELD(`type`, 3, 1, 5, 4, 3)