试图比较PDO语句

时间:2013-11-09 11:49:00

标签: php mysql pdo

我从我的桌子上抓了两个随机的行。然后我想比较它们以确保它们不是同一行。如果他们是我想继续选择一个随机行,直到我上场,这是不一样的。

目前我正在选择随机行,当我点击while循环试图获得不同的行时,我的问题出现了。我得到以下错误“在非对象上调用成员函数fetch()”

for ($i = 1; $i <= $cycles; $i++) {
        $t1 = $dbtemp->query("SELECT * FROM `test` ORDER BY RAND() LIMIT 1");
        $t2 = $dbtemp->query("SELECT * FROM `test` ORDER BY RAND() LIMIT 1");
        $winner = $t1->fetch(PDO::FETCH_ASSOC);
        $loser = $t2->fetch(PDO::FETCH_ASSOC);
        if($winner['id'] == $loser['id']) {
            while($winner['id'] == $loser['id']) {
                $t2 = $dbtemp->query("SELECT * FROM `content` ORDER BY RAND() LIMIT 1");
                $loser = $t2->fetch(PDO::FETCH_ASSOC); // Error occurs on this line
            }
        }

关于我应该或可以如何开展这项工作的任何建议都会很棒。

1 个答案:

答案 0 :(得分:3)

你为什么不这样做:

$t1 = $dbtemp->query("SELECT * FROM test ORDER BY RAND() LIMIT 2");

然后:

$players = $t1->fetchAll(PDO::FETCH_ASSOC);
$winner = $players[0];
$loser = $players[1];