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 に答える