PDA

View Full Version : مبتدی: نحوه خواندنرکورد ها از mysql توسط php از آخر به اول



hadinajafi
سه شنبه 25 مرداد 1390, 00:57 صبح
سلام بچه ها
من یه دیتا بیس دارم که یه جدول برای اخبار داره و کلید اصلیش id هستش که بصورت خودکار هردفعه که رکورد جدید ذخیره میشه یکی بش اضافه میشه (AUTO_INCREMENT) من میخوام تو سایت این رکوردهارو از آخر به اول بخونم چون رکوردی که id بزرگتری داره خبر جدیدتریه نسبت به بقیه.من اولش max آی دی را برای رکوردها از دیتا بیس گرفتم و شروع کردم از max به طرف صفر چاپ کردن به وسیله حلقه for ولی مشکل اینجاست که ممکنه چندتا خبر پاک شه و تفاضل 1 بین هر آیدی با id‌قبلیش بهم بخوره .حالا چه جوری میشه از آخر به اول بخونم و مشکلی بالایی رو نداشته باشم .لطفا راهنمایی کنید.

nadi_1368
سه شنبه 25 مرداد 1390, 15:10 عصر
salam dost aziz.khob vaghti qury ejra mikoni dadehato bar asas id sort kon.on vaght az aval jad val bekhon.

hadinajafi
سه شنبه 25 مرداد 1390, 19:01 عصر
salam dost aziz.khob vaghti qury ejra mikoni dadehato bar asas id sort kon.on vaght az aval jad val bekhon.
شاید کامل توضیح ندادم.
سایت من سایت خبریه که تو صفحه اول 3تا خبر نشون میده که آخرین خبرای وارد شده است .
فرض کنید من 100 رکورد دارم که اخرین رکورد ، ای دیش 103 , قبلیش 100و قبل از اون 89 من باید این سه تارو بترتیب بزرگتر به کوچکتر تو صفحه اول نشون بدم . اگه max آی دی ها رو بدست بیارم و دوتا قبلشو بخوام واکشی کنم اون وقت نمی تونم max هی یکی کم کنم تا دوتا قبلیش بدست بیاد چون دیگه تفاضل بین ای دی ها دیگه یک نست.

mkvisual
سه شنبه 25 مرداد 1390, 22:20 عصر
سلام ... فکر کنم با یه if حل بشه :
دقیقا کدش رو نمینوسیم :دی زیاد میشه :
شما آخرین آی دی رو میگیری ، این که کاری نداره ...
بعد یکی ازش کم میکنی ... چک میکنی ببینی چنین آی دی ای وجود داره ؟ که affected_row بزرگتر از صفر هست یا نه ؛ اگه صفر بود که continue میکنی و برمیگردی سره اول for که قرار دادی ... و اگه صفر نبود یعنی چنین آی دی ای وجود داره و اون چیزی رو که شما میخوای چاپ میکنه .

nadi_1368
سه شنبه 25 مرداد 1390, 23:48 عصر
man k goftamm
to dastor select bar asas id az bozorgtar b kochektar sort mikoni
bad 3 khone aval jadvalo mikhonishon

hadinajafi
چهارشنبه 26 مرداد 1390, 00:04 صبح
سلام ... فکر کنم با یه if حل بشه :
دقیقا کدش رو نمینوسیم :دی زیاد میشه :
شما آخرین آی دی رو میگیری ، این که کاری نداره ...
بعد یکی ازش کم میکنی ... چک میکنی ببینی چنین آی دی ای وجود داره ؟ که affected_row بزرگتر از صفر هست یا نه ؛ اگه صفر بود که continue میکنی و برمیگردی سره اول for که قرار دادی ... و اگه صفر نبود یعنی چنین آی دی ای وجود داره و اون چیزی رو که شما میخوای چاپ میکنه .
در باره affected_row یکم توضیح میدی چیه اصلا؟
یه نمونه هم بنویسی ممنون میشم

bigtime
شنبه 29 مرداد 1390, 23:27 عصر
با سلام
affected_rows جز توابع api ، php در mysql می باشد و کاربردش هم اینه که وقتی شما یه query میزنی به شما میگه که چه تعداد از رکورد های جدول از این query تاثیر گرفتن.
من فکر میکنم که پیشنهاد nilo_1368 خوب و معقول و راحت باشه.