PDA

View Full Version : سوال: نمایش هر رکورد با هر reload



soroush.r70
دوشنبه 22 خرداد 1391, 18:02 عصر
می خوام یک رکورد از جدول رو با هر reload صفحه فراخوانی بشه و نشون بده با استفاده از تابع rand نمی شه چون امکان نمایش جند بار تکراری پشت سر هم وجود داره بعد از این وقتی به یه روز خاص رسید یه رکورد خاص رو نشون بده

مثلا 100 تا رکورد داریم و این رکوردها یکی یکی با هر reload عوض می شن حالا این وسط رکورد 101 می خوام وقتی مثلا پنج شنبه شد نمایش بده

از شنبه تا چهارشنبه رکوردها یکی یکی با هر reload عوض بشن وقتی پنج شنبه و جمعه شد رکورد 101 نمایش داده بشه. و دوباره ادامه اون رکوردها و ادامش هم به همین ترتیب

فکر کنم پیچیده شد حالا همچین چیزی می شه...؟

colors
دوشنبه 22 خرداد 1391, 18:52 عصر
درود

میتونی تو بانک یه جدول واسش بسازی که آخرین رکوردی رو که نمایش دادی همراه با تارخ اون روز بگیره و یکی بهش اضافه کن و از اون واسه نمایش رکورد جدید استفاده کن.
مثلا اول مقدار 0 رو بریز تو جدول بعد که خواستی اولین رکورد رو نمایش بد یکی بهش اضافه کن که میشه 1 و رکورد 1 رو نمایش بده و تاریخ امروز رو ثبت کن. بعد در هر بار reload تاریخ رو با تاریخ ثبت شده در بانک چک کن گه 24 ساعات گذشته بود و یا روز جدیدی بود مقدار رکورد جدول رو یکی بهش اضافه کن که میشه 2 و رکورد 2 رو نمایش بده و تاریخش رو ثبت کن.

اگه متوجه نشدی بهتر توضیح بدم...

soroush.r70
سه شنبه 23 خرداد 1391, 20:20 عصر
با تشکر می تونی بیشتر و با نمونه توضیح بدی...؟

colors
چهارشنبه 24 خرداد 1391, 13:53 عصر
اول یه جدول تو بانک میسازیم مثلا با نام random و سه فیلد رو براش قرار میدیم با نامها id - num - date .
یه سطر به این جدولمون اضافه میکنیم با مقدار num=0 و date=2012/06/13
وقتی تو صفحه نخستمون میخوایم یه عدد تصادفی و غیر تکراری از بین 1 تا 100 رو تولید کنیم میام به جدول random وصل میشیم و آخرین رکوردش رو میخونیم و تاریخش رو با تاریخ فعلی مقایسه میکنیم و اگه تاریخ فعلی 1 روز بزرگتر بود ( مثلا 2012/06/14 ) مقدار فیلد num رو یکی افزایش میدیم و num و date رو با مقادیر جدید آپدین میکنیم و مقدار جدید فیلد num رو تو یه متغیر میریزیم و اون متغییر میشه عدد تصادفی ما ( یعنی 1 ) و اونرو تو کوئریمون قرار میدیم. و هر بار که صفحه reload بشه این کارو انجام میدیم.

SELECT * FROM `article` WHERE `id`='$id'
یه نکته رو هم بگم که وقتی مقدار فیلد num در جدول random به 100 رسید با یه شرط اونو دوباره 0 میکنیم ( مثلا در هر بار reload شرط رو چک میکنیم که مقدار num به 100 نرسیده باشه، اگه رسیده بود 0 میکنیم)
میتونی شرط چک کردن روز جدید رو به ساعت، دقیقه و ... تبدیلش کنی

soroush.r70
چهارشنبه 24 خرداد 1391, 16:02 عصر
تا اینجا درست که ما میایم رکوردها رو به شکل تصادفی می خونیم ولی روز های پنج شنبه و جمعه که یک رکورد خاص همیشه باید نمایش داده بشه چی...؟

شنبه تا چهارشنبه نمایش به صورت رندوم پنج شنبه و جمعه نمایش یک رکورد خاص

soroush.r70
چهارشنبه 24 خرداد 1391, 16:04 عصر
تا اینجا درست که ما میایم رکوردها رو به شکل تصادفی می خونیم ولی روز های پنج شنبه و جمعه که یک رکورد خاص همیشه باید نمایش داده بشه چی...؟

شنبه تا چهارشنبه نمایش به صورت رندوم پنج شنبه و جمعه نمایش یک رکورد خاص

colors
چهارشنبه 24 خرداد 1391, 21:00 عصر
خوب میتونی واسه اینم یه شرط بزاری که اگه برقرار بود رکورد 100 رو بخونی در غیر این صورت عملیات بالا رو انجام بدی

if(date('l')==='Thursday' || date('l')==='Friday'){
// Fetch a record 100
}
else{
// دستورات بالا
}