php - 如果主键缺少序列号,MySQLi 查询将不起作用

标签 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 
         ");

任何人都可以建议我缺少什么以及如何修复它?

最佳答案

您应该使用 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");
}

关于php - 如果主键缺少序列号,MySQLi 查询将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44868635/

相关文章:

javascript - 无法从 $_POST 变量访问使用 JSON.stringify 序列化的表单数据

javascript - Web 服务和 phonegap : best practices

php - MySQL。按字符串 ID 进行数字排序

PHP MySQLi 查询不工作

php - 准备好的语句未运行 MYSQLI PHP

php - printf() 函数的问题

php - jQuery - 单击链接/按钮时显示文本框

mysql - 触发器语句中的 SQL 查询

mysql - Magento 中哪个表保存主图像的信息

PHP 7 session_regenerate_id 失败和 PDO 调用成员函数prepare() null