2

好的,所以我试图将值放入一个数组中并将它们随机排列,然后让它在查询中使用该随机值。我知道我的代码很糟糕,不要再使用mysql了,请远离这个话题。我不明白为什么这不起作用我还有其他类似的东西可以正常工作。现在它会忽略 if 语句并每次都给他们一张票。

if(isset($_POST['Submit'])) {

    $ticket = array("0","0","0","0","0","0","0","1");
    shuffle($ticket);

    if ($ticket >= 1) {
        echo "You have Found a Shop Ticket!" ;
        mysql_query("UPDATE users SET ticket=ticket+1 WHERE username = '".$_SESSION['username']."'") 
            or die(mysql_error());
    } else {
        echo "";
    }
}
4

3 回答 3

5

您正在检查整个数组是否 >= 1,这显然始终为 TRUE。

选择一个值:

$ticket = array_shift($ticket); // do this after you shuffle
于 2013-01-25T02:43:42.533 回答
2

尝试

if (current(shuffle($ticket)) >= 1) {
    # yay
} else {
    # ney
}
于 2013-01-25T02:45:35.447 回答
0

$ticket 是一个数组,而不是一个数字。你可以使用 foreach 或 array_map 来做到这一点。例子:

function foo($n){
    if($n >= 1){//do something}
}
$ticket = array("0","0","0","0","0","0","0","1");
shuffle($ticket);
array_map('foo', $ticket);
于 2013-01-25T02:56:35.343 回答