هر خبر یه تاریخی با timestamp داره. شما میای اول یه شرط کمتر بودن زمان برای یک روز رو میذاری و در آخر برحسب تعداد بازدیدها sort میکنیسلام
چطوری میشه فهمید پربازدید ترین اخبار امروز کدوم خبر ها بودند ؟![]()
خب اینجوری نمیشه مگر اینکه یه تیبل دیگه بسازی و زمان بازدیدها از هر خبر رو توش ثبت کنی!امیر جان ممنون !
ولی من میخوام بر اساس تعداد بازدی هایی که همون روز از همون خبر شده پربازدیدهای همون روز رو در بیارم !
خبر هم ممکنه چند روز پیش نوشته شده باشه !
خب اینجوری نمیشه مگر اینکه یه تیبل دیگه بسازی و زمان بازدیدها از هر خبر رو توش ثبت کنی!
یکی id که auto increment باید باشهمیشه در مورد فیلد های این جدول یه توضیحی بدین ؟
یکی id که auto increment باید باشه
یکی news_id که آی دی خبر رو میگیره
و یکی دیگه time
این سه تا رو حتما باید داشته باشه
اتفاقا دقیقا همینجوری میشه!ممنون ولی فکر میکنم اینجوری نمیشه !
اتفاقا دقیقا همینجوری میشه!
اگه خواستی کوئری هارو هم واست مینویسم

سلام . توی همون تیبل خبرات یک فیلد اضافه کن بنام مثلا news_todayvisit بعد آخر هر روز همه رو صفر کن . اینطوری به نظرم بانک داده هم شلوغ پلوغ نمیشه .


با اون روشی که گفتم کوئریش یه چیزی مثل این میشه:یعنی باید آخر روز مثلا فیلد آخر 20 هزار خبر تغیر کنند ؟
فکر نمیکنم خوب باشه![]()
SELECT news.title FROM news, visit WHERE visit.time < (time()-3600*24) AND visit.news_id = news.id ORDER BY count(visit.id) DESC
در این روش علاوه بر عیبی که صاحب تاپیک گقت یه مشکل دیگه هم داره که فقط برای یک رو قابل استفاده هست ولی اون روشی که من گفتم مثلا میتونه برای پربازدیدترین خبر در یک هفته گذشته رو هم به دست بیارهسلام . توی همون تیبل خبرات یک فیلد اضافه کن بنام مثلا news_todayvisit بعد آخر هر روز همه رو صفر کن . اینطوری به نظرم بانک داده هم شلوغ پلوغ نمیشه .
یعنی باید آخر روز مثلا فیلد آخر 20 هزار خبر تغیر کنند ؟
فکر نمیکنم خوب باشه![]()










