Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用mysql rand()在ajax调用上显示唯一图像_Php_Jquery_Mysql_Ajax_Random - Fatal编程技术网

Php 使用mysql rand()在ajax调用上显示唯一图像

Php 使用mysql rand()在ajax调用上显示唯一图像,php,jquery,mysql,ajax,random,Php,Jquery,Mysql,Ajax,Random,我正在使用mysql rand()函数从数据库中获取一些图像。当我打印阵列时,它会显示具有唯一图像的唯一记录 在刷新页面时,它还会显示不同的图像。现在,我希望避免手动刷新,并在特定时间间隔后使用ajax进行刷新 这同样有效,但它不会在序列中循环遍历所有图像。 例如,在ajax调用中,第二个或第三个图像之后会再次出现image1。我希望避免这种情况,并在所有过程中循环使用,而不重复 例如,如果我的查询获取以下内容: 图1 图2 图3 图4 图5 我希望它以相同的顺序循环,而不会重复任何图像。 当前

我正在使用mysql rand()函数从数据库中获取一些图像。当我打印阵列时,它会显示具有唯一图像的唯一记录

在刷新页面时,它还会显示不同的图像。现在,我希望避免手动刷新,并在特定时间间隔后使用ajax进行刷新

这同样有效,但它不会在序列中循环遍历所有图像。 例如,在ajax调用中,第二个或第三个图像之后会再次出现image1。我希望避免这种情况,并在所有过程中循环使用,而不重复

例如,如果我的查询获取以下内容: 图1 图2 图3 图4 图5

我希望它以相同的顺序循环,而不会重复任何图像。 当前图像显示如下: 图4 图3 图1 图4 图2 ... ... ……等等

因此,正如您所看到的,图像不是按顺序排列的

这是我的代码:

这是我的文件,图像在这里被提取和循环

<?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);

});