我是Android开发人员并使用PHP API。我正在努力做一个查询,根据要求更新我的表。如果主要ID具有串行中的所有数字,例如1 ... 2 ... 3 ... 4等,则此查询正常工作。如果缺少任何数字,例如1 ... 2 ... 4,则此功能无效...它的更新直到1 ... 2 ...但是在序列号丢失之后不能正常工作。在这种情况下,它不适用于第4行。
我的查询如下
$sql = mysqli_query($mysqli, "SELECT _quid FROM tbl_quotes");
$num_rows = mysqli_num_rows($sql);
for ($x = 1; $x <= $num_rows; $x++) {
$randomnumbershare = (rand(10, 50));
$randomnumberlike = (rand(10, 50));
$qu_time = getDatetimeNow();
$results = mysqli_query($mysqli, "
UPDATE tbl_quotes SET
qu_status=1,
qu_like=$randomnumberlike,
qu_share=$randomnumbershare,
qu_favorite=0,
qu_time='$qu_time'
where _quid=$x
ORDER BY _quid ASC
");
任何人都可以建议我,我错过了什么,我该如何解决?
答案 0 :(得分:0)
您应该使用while
循环而不是for
循环来循环遍历表的所有ID,如下所示:
$sql = mysqli_query($mysqli,"SELECT _quid FROM tbl_quotes");
while($result = mysqli_fetch_array($sql)){
$randomnumbershare = (rand(10,50));
$randomnumberlike = (rand(10,50));
$qu_time = getDatetimeNow();
$results = mysqli_query($mysqli,"UPDATE tbl_quotes SET qu_status=1, qu_like=$randomnumberlike,qu_share=$randomnumbershare,qu_favorite=0, qu_time='$qu_time' where _quid=".$result['_quid']." ORDER BY _quid ASC");
}