我正在使用mysql rand()函数从数据库中获取一些图像 . 当我打印我的数组时,它会显示具有独特图像的唯一记录 .
此外,它还会在刷新页面时显示不同的图像 . 现在我想避免手动刷新并在特定间隔后使用ajax刷新它 .
这也可以,但它不会循环遍历序列中的所有图像 . 例如,在ajax调用的第二个或第三个图像之后,image1再次出现 . 我想避免和循环所有唯一而不重复 .
就像我的查询取这个:image1 image2 image3 image4 image5
我希望它以相同的顺序循环,而不会重复任何图像 . 目前图像显示如下:image4 image3 image1 image4 image2 ...... ......等等 .
因此,您可以看到图像不是按顺序排列的 .
这是我的代码:
这是我的文件,其中提取和循环图像 .
<?php
$club_activity_id = get_single_value("mpc_clubs","activity_id", "id =".$_SESSION['USERACTIVECLUB'],$orderby="1",$order="desc",$limit="",$disp=false);
//echo $club_activity_id;
$select_sponsor = mysql_query("SELECT * FROM mpc_sponsor_ad WHERE ( FIND_IN_SET('".$club_activity_id."',activity) or activity = '0') and status > 0 ORDER By RAND() limit 1");
if(mysql_num_rows($select_sponsor) > 0)
{
?>
<ul>
<li class="content-menu" style="opacity: 1;" id="ad">
<div class="content-menu_part width_175">
<?php
$fetch_sponsor = mysql_fetch_array($select_sponsor);
if ($fetch_sponsor['sponsor_ad_title']) {
?>
<div class="content-menu-lf"><?= $fetch_sponsor['sponsor_ad_title'] ?></div>
<?php
}
?>
<div class="content-menu-rt"></div>
</div>
<div class="contete-txt" style="padding:0 0 0 0px; width:200px;">
<?=stripslashes($fetch_sponsor['sponsor_ad_url'])?>
</div>
</li>
</ul>
<?php
}
?>
这是在窗口加载20秒后刷新的ajax调用 . 此代码位于页脚文件中,ajax发布到right-sponsor.php,该文件是上面带有查询的文件 .
$(window).load(function() { //start after HTML, images have loaded
setInterval(function() {
$.ajax({
type: "POST",
url: "common/right_sponsor.php",
success:function(msg)
{
$('#sponser').html(msg);
//alert('yes image changes.!!');
}
});
}, 20000);
});
1 回答
在页面加载时随机生成所有图像的列表,在会话中保存此列表(仅ID),当您通过ajax刷新它时,按正常顺序获取它们,如1 - 5,然后是6 - 10等 .