2009-11-23 96 views
0

我有一位运行在线拍卖网站的朋友。他目前在主页上有一个精选项目部分,他希望每X分钟循环一次。该网站运行一个我尚未见过的MySQL数据库。每x分钟PHP/SQL循环项目

他正在使用的当前代码是一个大而长的混乱的Javascript代码,它会导致各种错误。

该项目将不得不按顺序循环,当他们到达最后,返回并重复。

使用PHP的最佳方法是什么?

编辑:我的意思是从后端SQL的角度来看。不是用户界面。

感谢 本

+0

你问的是如何从UI的角度来循环它,或者如何从数据库中选择合适的“下一个”记录? – Xailor 2009-11-23 05:05:28

+0

页面在间隔期间是否向所有访问者显示相同的项目,或每个访问者是否从头开始序列? – jheddings 2009-11-23 05:28:09

+0

此外,页面是否需要自动刷新特色项目(即用户是否简单地将页面打开),还是仅在页面加载时才会完成? – jheddings 2009-11-23 05:31:10

回答

0

假设你有一个单独的表的特色项目(可能有一个项目ID引用的主要项目表,也许其他信息)......在此表中,添加一个last_featured列代表该项目上次显示的时间。从那里,你可以操纵你的查询来获得精选项目的旋转列表。

它可能看起来像这样(如PHP MYSQL &之间的奇怪混合伪代码):

// select the most recent item in the list, considered the current item 
$item = SELECT * FROM featured_items ORDER BY last_featured DESC LIMIT 1; 

if ($item['last_featured'] > X_minutes_ago) { 
    // select the oldest item in the list, based on when it was last featured 
    $item = SELECT * FROM featured_items ORDER BY last_featured ASC LIMIT 1; 

    // update the selected item so it shows as the current item next request 
    UPDATE featured_items SET last_featured=NOW() WHERE item_id = $item['item_id']; 
} 

注意,这需要3调用数据库......有可能会实现更有效的方法这个。

+0

感谢队友, 我会看看它是怎么回事! – Ben 2009-11-23 22:11:31