我有20个闪光标语,10个亚美尼亚标语,10个英语标语。
$query="SELECT* FROM `reklam` LIMIT 5";
$result=mysql_query($query);
while($row=mysql_fetch_array($result))
{
if($_SESSION['lang']=='arm')
{
$swf_name=$row['swf_arm'];
}
else
{
$swf_name=$row['swf_eng'];
}
echo'<tr>
<td>
<div style="text-align: center">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="290" height="299" align="middle">
<param name="movie" value="reklam/'.$swf_name.'.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="transparent" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="reklam/'.$swf_name.'.swf" width="290" height="299">
<param name="movie" value="reklam/'.$swf_name.'.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="transparent" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflash">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
</td>
</tr>';
}
横幅的名称来自数据库。如果网站语言设置在亚美尼亚语,它应该显示亚美尼亚横幅,如果英语 - 英语(会话)。正如我所说,有10个横幅,但我需要一次显示5,所以我包括在查询LIMIT 5.现在任务是,我需要旋转那些横幅。我的意思是当我刷新页面时,它应该随机选择横幅。我该怎么办?
谢谢!
答案 0 :(得分:4)
您可以使用MYSQL RAND()
$query="SELECT* FROM `reklam` ORDER BY RAND() LIMIT 5";
答案 1 :(得分:4)
有很多方法可以做到这一点,但鉴于只有少量记录,你不需要做任何太聪明的事情。
您可以轻松选择:
在SQL查询中使用ORDER BY RAND()
。
只需加载所有记录,使用PHP的shuffle()
函数随机重新排序数组,然后只显示数组中的前五个。
老实说,根据你在这里谈论的记录数量,它不会产生很大的差异。对于较大的数据库,出于性能原因,这些选项都不是一个好主意,但是对于那些小到你们两者的表格来说都非常好。
答案 2 :(得分:0)
您可以在表格中添加1个字段 - views(int)
选择显示较少的横幅,然后运行1更新:
$sql = "SELECT * FROM `reklam` ORDER BY `views` ASC LIMIT 5";
$sql = "UPDATE `reklam` SET `views`=`views`+1 WHERE ID IN(IDS FROM SELECT)";
通过这种方式,您可以获得并统计广告的展示次数。