Php 使用mysql rand()在ajax调用上显示唯一图像
我正在使用mysql rand()函数从数据库中获取一些图像。当我打印阵列时,它会显示具有唯一图像的唯一记录 在刷新页面时,它还会显示不同的图像。现在,我希望避免手动刷新,并在特定时间间隔后使用ajax进行刷新 这同样有效,但它不会在序列中循环遍历所有图像。 例如,在ajax调用中,第二个或第三个图像之后会再次出现image1。我希望避免这种情况,并在所有过程中循环使用,而不重复 例如,如果我的查询获取以下内容: 图1 图2 图3 图4 图5 我希望它以相同的顺序循环,而不会重复任何图像。 当前图像显示如下: 图4 图3 图1 图4 图2 ... ... ……等等 因此,正如您所看到的,图像不是按顺序排列的 这是我的代码: 这是我的文件,图像在这里被提取和循环Php 使用mysql rand()在ajax调用上显示唯一图像,php,jquery,mysql,ajax,random,Php,Jquery,Mysql,Ajax,Random,我正在使用mysql rand()函数从数据库中获取一些图像。当我打印阵列时,它会显示具有唯一图像的唯一记录 在刷新页面时,它还会显示不同的图像。现在,我希望避免手动刷新,并在特定时间间隔后使用ajax进行刷新 这同样有效,但它不会在序列中循环遍历所有图像。 例如,在ajax调用中,第二个或第三个图像之后会再次出现image1。我希望避免这种情况,并在所有过程中循环使用,而不重复 例如,如果我的查询获取以下内容: 图1 图2 图3 图4 图5 我希望它以相同的顺序循环,而不会重复任何图像。 当前
<?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
}
?>
在页面加载时,随机生成所有图像的列表,将该列表(仅ID)保存在会话中,当您通过ajax刷新该列表时,按正常顺序获取它们,如1-5,然后6-10等。您在图像中的具体循环位置,我在php中没有看到任何
循环构造code@dreamweiver实际上,我并不是在循环,而是一次只获取一条记录。因此,这意味着服务器端的查询本身会重复图像,因此需要临时修改查询。@dreamweiver,但查询具有唯一的记录。我不这么认为,这个问题需要改变。或者???实际上,问题只在于rand()
和orderby
之间的关系。不能在ORDER BY子句中使用具有RAND()值的列,因为ORDER BY将多次计算该列。ref:即使在会话中存储Id,我如何通过ajax传递它???。Ajax只是一次刷新查询并生成一个图像的结果。您必须重写您的php文件,因为当前过程不起作用。当通过ajax调用同一个php文件时,您必须检查图像列表是否已经生成并存储在会话中,您还需要发送一个偏移量变量,该变量在列表中移动。这是我用代码尝试检查id是否已经设置的,如果设置了,则什么也不做,如果不同,则显示该图像。但还是不行,你能告诉我哪里错了吗<代码>
这是在我的PHP文件中,我在其中获取图像,并在上面检查会话。如果我错了,请更正。如果会话中存在Id,则不会显示图像。从上面的代码可以看出。
$(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);
});