1

フラッシュ バナーを 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 に含めた。つまり、ページを更新すると、バナーがランダムに選択されるはずです。どうすればいいですか?

ありがとう!

4

3 に答える 3

4

これを行う方法はたくさんありますが、レコードの数が少ないことを考えると、あまり巧妙なことをする必要はありません。

簡単なオプションは次のとおりです。

  • ORDER BY RAND()SQL クエリで使用します。

  • すべてのレコードをロードし、PHP のshuffle()関数を使用して配列をランダムに並べ替え、配列の最初の 5 つを表示するだけです。

正直なところ、ここで話しているレコードの数では、大きな違いはありません。大規模なデータベースの場合、パフォーマンス上の理由から、これらのオプションはどちらも良い考えではありませんが、あなたが持っているものと同じくらい小さなテーブルの場合、両方とも完全に問題ありません.

于 2013-05-13T10:55:08.023 に答える
0

ビュー(int)と呼ばれるテーブルに1つのフィールドを追加できます

表示の少ないバナーを選択し、その後 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 に答える