【问题标题】:Create mutually exclusive image slideshow (two images shown at same time, cannot ever be same)创建互斥图像幻灯片(同时显示两个图像,不能相同)
【发布时间】:2014-04-27 04:56:55
【问题描述】:

感谢您提前提供帮助。这是最近其他人提出的类似问题(Random Switch Statement Improvements?),但那里提供的解决方案对我没有用。

如果您不想访问该页面,这就是问题所在。我有 2 个幻灯片图像,一个在另一个之上。我希望这些图像永远不会相同,无论是在页面加载时还是在幻灯片无限播放时。

我已经尝试添加

"ORDER BY rand() LIMIT 2"

这只会使幻灯片图像消失。

代码如下:

$getRugInfo = "SELECT f_name, l_name, city, zipcode, dfd.name as state_id, rug_types, profile_photo, profile_url, prt.rating  FROM rug_owners ps 
left join rug_states pst on dfd.state_id = ps.state_id left join rug_reviews 
prt on dfd.user_id = ps.user_id  WHERE promoted_rug = 1 ORDER BY ";  


$range_values = range(1,6);
shuffle($range_values);
$pickRug=array_pop($range_values);

 // I tried doing the code above, but it did not make the slideshow images mutually exclusive.  THe same two images would show up on occasion.  

$pickRug = mt_rand(1, 5);

switch($pickRug) {
case 1:
    $getSliderInfo .= "f_name";
    break;
case 2:
    $getSliderInfo .= "l_name";
     break;
case 3:
    $getSliderInfo .= "city";
    break;
case 4:
    $getSliderInfo .= "profile_photo";
    break;
case 5:
    $getSliderInfo .= "city DESC";
    break;
}

$sliderResult = mysql_query($getSliderInfo); // calls the slideshow

$link_address = $row["profile_url"];

那么第二张幻灯片图像(底部的图像)与上面相同

这里是创建幻灯片的 Jquery:

 <script>
    jQuery('#Slider').cycle({ 
    fx:     'fade', 
    speed: 3000
});
    jQuery('#Slider2').cycle({ 
    fx:     'fade', 
    speed: 3000
});
</script>

同样,这与上面提供的链接中其他人遇到的问题基本相同,只是提供的解决方案不起作用。`

【问题讨论】:

    标签: php sql slideshow


    【解决方案1】:

    尝试增加随机数的范围,调整switch语句如下:

    $pickRug = mt_rand(1, 15);
    
    switch($pickRug) {
        case 1:
        case 4:
        case 7:
            $getSliderInfo .= "f_name";
            break;
        case 2:
        case 5:
        case 8:
            $getSliderInfo .= "l_name";
             break;
        case 3:
        case 6:
        case 9:
            $getSliderInfo .= "city";
            break;
        case 10:
        case 12:
        case 14:
            $getSliderInfo .= "profile_photo";
            break;
        case 11:
        case 13:
        case 15:
            $getSliderInfo .= "city DESC";
            break;
    }
    

    这种混杂会给你带来更独特的结果。

    希望对你有帮助!!

    【讨论】:

    • 感谢昆丹这么快的回复!我实施了您建议的更改,它确实减少了问题。唯一的问题是只有 5-6 个用户(在这种情况下是地毯)符合标准(付费在主页上推广)。所以我真正需要的是“如果用户 1 在顶部,用户 1 不能在底部,移动到下一个用户)。希望这是有道理的,这就是我所说的“互斥”
    • @user3577545,我理解您的担忧,所以我认为您可以将当前滑块信息(如数字或名称)存储在变量或会话中,并且每次检查下一个生成的数字,如果它等于前一个比再次运行该随机方法。
    猜你喜欢
    • 1970-01-01
    • 2017-08-05
    • 2019-07-18
    • 2016-05-04
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    相关资源
    最近更新 更多