如果主键缺少序列号,则MySQLi查询无效

时间:2017-07-02 08:00:44

标签: php mysql mysqli

我是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 
         ");

任何人都可以建议我,我错过了什么,我该如何解决?

1 个答案:

答案 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");
}