• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
خواندن id رکورد بعدی
#1
سلام خسته نباشید
من تو پروژه ای که دارم انجام میدم یک جای هست که قرار دکمه next و back بزارم یک مشکلی دارم که نمتونم id رکورد بعدی رو بخونم id ها هم به ترتیب نیستند بخاطر حذف بعضی از رکورد ها از ترتیب افتاده مثلا بعد از 20 شد 22
  پاسخ
تشکر شده توسط :
#2
مگه از limit استفاده نمیکنید؟

شماره آیدی رو لازم نیست داشته باشید که آخه...
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : af6900 cyletech
#3
باید برای هر کدوم یه کوئری بزنید. مثلا من این کوئری ها رو توی یه پروژه دارم :

کد پی‌اچ‌پی:
SELECT `news_story`.`id` AS `id`, `news_story`.`title` AS `title`, `news_story`.`alias` AS `aliasFROM `news_storyWHERE (`status` = AND `topic` = AND id 23ORDER BY `idASC LIMIT 1

SELECT 
`news_story`.`id` AS `id`, `news_story`.`title` AS `title`, `news_story`.`alias` AS `aliasFROM `news_storyWHERE (`status` = AND `topic` = AND id 23ORDER BY `idDESC LIMIT 1 

فقط اینکه برای آی دی بعدی قبلی به اون WHERE زیاد توجه نکن چون باید با توجه به جدول خودت درستش کنی ولی بخش ORDER بسیار مهمه که اینطوری باشه و اون آخر WHERE که id > 23 و id < 23 داره LIMIT هم باید ۱ باشه
  پاسخ
تشکر شده توسط : af6900
#4
فرضاً رکورد فعلی 15
کد:
select * from tbl where id>15 limit 1,1
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : af6900 M.J
#5
من این طوری نوشتم کد ها رو :
این کد برای next
کد:
"SELECT * FROM `gallery` WHERE `id`>$id LIMIT 0,1"
این هم برای back
کد:
"SELECT * FROM `gallery` WHERE `id`<$id ORDER BY id DESC LIMIT 0,1"

کار میکنه مشکل خاصی نداره اگه دوستان نظری دارن خوشحال میشم بدونم
  پاسخ
تشکر شده توسط :
#6
دو تا پیشنهاد.
اول اینکه اگر گالری آلبوم بندی داره بهتره عکس بعدی و قبلی در همون آلبوم لود بشن برای همین آی دی آلبوم رو هم در کوئری لحاظ کنید. دوم اینکه اگر قیلدی برای مشخص کردن وضعیت تصاویر مثلا آف لاین و آنلاین دارید بهتره اون رو همن وارد کنید

من احتمالا اون دو تا کوئری رو که برای شما مثال زدم بعدا آپدیت کنم که در کنار آی دی ( یا به جای آی دی ) با فیلد زمان انتشار بعدی و قبلی رو مشخص کنه ولی باید قبلش تستش کنم ( البته این کار زیاد ضروری نیست )
  پاسخ
تشکر شده توسط :
#7
برای چی DESC کردی؟ فقط باید کوچیکتر رو بزرگتر میکردید، همین!
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :
#8
(۱۳۹۱ مرداد ۱۵, ۰۴:۰۰ ب.ظ)hamid_80386 نوشته: برای چی DESC کردی؟ فقط باید کوچیکتر رو بزرگتر میکردید، همین!

بزرگتر کوچکتر کردم درست کار نمی کرد مثلا از 65 یک دفع به 61 میومد ولی باید یکی یکی کم بشه من اینطوری نوشتم کار کرد اگر راه مناسبی دارید ممنون میشم بگید درضمن من دنبال یک منبع فارسی مناسب برای mysql میگردم اگر مشناسید معرفی کنید مرسی
  پاسخ
تشکر شده توسط :
#9
باید درست جواب بده آخه،

روش خودتون هم درست جواب میده، ولی بار اضافی میندازه دیگه، هی هر دفعه روش مرتب سازی رو عوض کنیم، البته اینکه بار اضافیش کوچیکه یا بزرگ رو باید بچه های دیگه بگن Wink

این سری رو نگاه کن:

100 90 80 70 60 50 40 30 20 10

حالا فکر کن id$ الان 50 هست
فکر کن دستور next رو اجرا کنی:
60 رو میگیری

حالا Desc کن اینو و بعد کوچکتر از id$ رو بگیر:

10 20 30 40 50 60 70 80 90 100

بازم 40 رو میگیری...
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


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