1

我有 20 个 flash 横幅,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 中。现在的任务是,我需要轮换这些横幅。我的意思是当我刷新页面时,它应该随机选择横幅。我该怎么做?

谢谢!

4

3 回答 3

4

你可以使用MYSQLRAND()

$query="SELECT* FROM `reklam` ORDER BY RAND() LIMIT 5";
于 2013-05-13T10:36:26.653 回答
4

有很多方法可以做到这一点,但鉴于只有少量记录,你不需要做任何太聪明的事情。

您的简单选择是:

  • ORDER BY RAND()在 SQL 查询中使用。

  • 只需加载所有记录,使用 PHP 的shuffle()函数对数组进行随机重新排序,然后只显示数组中的前五个。

老实说,就您在这里谈论的记录数量而言,它不会产生很大的不同。对于较大的数据库,出于性能原因,这些选项都不是一个好主意,但对于像您拥有的表一样小的表,这两个选项都很好。

于 2013-05-13T10:55:08.023 回答
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)";

通过这种方式,您将获得并统计您的广告有多少展示次数。

于 2013-05-13T10:58:55.057 回答