我从我的桌子上抓了两个随机的行。然后我想比较它们以确保它们不是同一行。如果他们是我想继续选择一个随机行,直到我上场,这是不一样的。
目前我正在选择随机行,当我点击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
}
}
关于我应该或可以如何开展这项工作的任何建议都会很棒。
答案 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];