با سلام و سپاس خدمت کاربران عزیز وب سایت یاهو ۹۸ YAHOO
امروز براتون یه آموزش کاربردی در زمینه لیمیت دادن به رکورد ها در بیسیک فور اندروید و php آماده کرده ایم .
ببنید شما باید لیمیت رو بصورت مرحله ای انجام بدید مثلا هربار ۳۰تا آیتم لود کنید
مرحله اول باید از آیتم تا ۳۰ رو لود کنید
مرحله دوم باید از ۳۱ تا ۶۰ رو لود کنید
مرحله سوم باید از ۶۱ تا ۹۰ رو لود کنید
بعنوان مثال بود
هر مرحله باید یه درخواست به سرور بفرستید
توی این درخواست مسلما باید بگید که از آیتم چند لود کنه از ۰ یا ۳۱ یا ۶۱
به این منظور در کوئری که داشتید ابتدا تعداد لیمیت رو مشخص میکنیم :
$sql = "SELECT * FROM Orders LIMIT 30 OFFSET X";
پس ما مشخص کردیم هربار با اجرا شدن مقدار ۳۰ آیتم رو بگیر.
اما باید مشخص کنیم که تا کجارو گرفته و از کجا به بعد رو باید بگیره که در کوئری بالا X وظیفه این کارو رو داره
سمت اندروید در سورس یه مقدار درنظر میگیرید به این صورت:
dim offsetid as int = 0
و این مقدار رو هربار بهمراه درخواست ارسال میکنیم مثال:
ht.Initialize("ht",Me) ht.PostString(url,"id=" & offsetid)
و این مقدار رو در سرور دریافت و در کوئری جایگزین میکنیم به این شکل:
$id = $_POST['id']; $sql = "SELECT * FROM Orders LIMIT 30 OFFSET ".$id."";
در نتیجه کوئری میاد از عدد مشخص که اینجا id هست تا ۳۰تای بعدیشو لود میکنه
اما برای مراحل بعدی شما در اندروید مشخص میکنید این offsetid چطور تغییر کنه، مثلا وقتی اسکرول به انتها رسید یا روی دکمه ای کلیک کردید نیازه مجدد درخواست به سرور ارسال بشه پس همونجا باید مقدار offsetid تغییر کنه به این شکل:
offsetid = offsetid + 30 ht.Initialize("ht",Me) ht.PostString(url,"id=" & offsetid)
به این شکل آخرین عدد مربوط به آیدی رو میگیرم و ۳۰تا بعدی رو بهش اضافه میکنیم.
ببخشید طولانی شد