通过数组的横幅的PHP旋转

时间:2013-05-13 10:33:22

标签: php arrays rotation

我有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.现在任务是,我需要旋转那些横幅。我的意思是当我刷新页面时,它应该随机选择横幅。我该怎么办?

谢谢!

3 个答案:

答案 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)";

通过这种方式,您可以获得并统计广告的展示次数。