我一次抓取随机行,一次使用100行,我用1标记了“已使用”列。当没有更多标记为0的列时,我需要用1重置所有行。这是我的代码...
$result = mysqli_query($res, "SELECT id, unit_id, shown FROM units WHERE suspended = '0' AND used = '0' ORDER BY RAND() LIMIT 100");
while($myrow = mysqli_fetch_array($result)){
if (!$result){
$result2 = mysqli_query($res, "UPDATE units SET used='0' WHERE used =
'1'");
}
else{
other code here
}
}
$res->close();
我也尝试过这个:
if ($myrow[id] == ''){
但这也不起作用。我只需要知道何时将所有这些标记为已使用,即可将“已用”重置为0,以便重新开始。
我也尝试过将if语句移到while之外,但它仍然无法正常工作。
应该注意,这是在cron上运行的。
答案 0 :(得分:0)
在while内外设置$i = 0;
并在其内部添加1.在while循环之后,检查 $ i 是否小于100,然后确定是否达到了列表,但是如果 $ i 等于100,则需要使用dB查询,因为最后100条记录可能会产生结果,并且该结果将再次出现在列表的末尾