• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکلی یا باگی در مورد LIMIT
#1
بسم الله الرحمن الرحیم
سلام
خوب نمی دونم این یه باگه یا چیه که دیگه اعصاب ... Angry
قبلا برای صفحه بندی اسکریپتی نوشته بود که الان دارم تبدیلش می کنم به یه کلاس {مدرسه Smile}
مشکلم اینه :
فرض کنید 2 رکورد تو دیتابیس داریم و از طریق LIMIT برشون می دارم
مثلا اینطوری: LIMIT 0,2 یا ...
ولی وقتی می زنم این: LIMIT 3,1 خوب در این صورت درسته که نتیجه ای انتخاب نمی شه چون فقط 2 تا رکورد داریم ولی نه خطا می ده و نه می تونم از طریق توابع php مثل empty یا isset نمی تونم خالی بودن اون نتیجه رو ثابت کنم / یعنی درسته که چیزی برای نمایش نمی یاد ولی حتی نمی شه ثابتش کرد که خالی هستAngry
هم با mysql_fetch_array چک کردم و هم با mysql_num_rows

نمی دونم تونستم منظورم رو برسونم یا نه / حالا نمی دونم این یه باگه یا هر چی
و اینکه راه حلی واسه این مسئله نیست؟

----
راستی:
راه حل: احتمالا می گید خوب چرا بجای LIMIT 3,1 که می دونی هم نتیجه ای نداره نمی زنی LIMIT 2,1
پاسخ من: خوب چون از طریق url شماره صفحه رو دریافت می کنم و برحسب اون این LIMIT درسته می شه به همین خاطر این مشکل واسم درست می شه / حال ممکن کاربر خودش این page رو یکی زیاد کنه و صفحه خالی می مونه ( که می خواستم کاری کنم اگه خالی بود یه صفحه به عقب برگرده )
ولی مشکل اینه که نمی شه این خالی بودن رو ثابت کرد ( یا شایدم منم بلد نیستمSmile )

--------------
حل شد - ببخشید / اشتباه از من بود حالا نمی دونم چرا اونطوری می شد /
تا\یک رو هم که نتونستم حذف کنم بنظر باید حذف شه - ممنون
  پاسخ
تشکر شده توسط :
#2
میتونی از یه کوئری اضافه استفاده کنی و تعداد رکوردها رو بگیری.
کد:
SELECT COUNT (*) FROM `your_table` WHERE your_condition
بعد بر اساس این اندازه که داری اقدام کنی.
یه راه دیگه هم هست، اونم اینه که به SELECT عبارت SQL_CALC_FOUND رو اضافه کنی، مثلا :
کد:
SELECT SQL_CALC_FOUND_ROWS * FROM `your_table` WHERE condition LIMIT 1 ,10
بعد از این کوئری ،‌انجام دادن این کوئری :
کد:
SELECT FOUND_ROWS()
نشون میده که کوئری قبلی، بدون در نظر گرفتن LIMIT چند سطر برمیگردونه.
فقط اینکه بین این دو تا کوئری هیچ کوئری دیگه ای از Connection که دارید استفاده میکنید اجرا نشه.
  پاسخ
تشکر شده توسط : payam hosseintdk775


پرش به انجمن:


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