为了账号安全,请及时绑定邮箱和手机立即绑定

如何从此代码中为每一行更新 MySQL?

如何从此代码中为每一行更新 MySQL?

PHP
12345678_0001 2021-06-16 18:03:53
我正在尝试更新“跟踪”、“承运人”、“状态”行,其中状态为“等待跟踪”$sql = "SELECT * FROM orders WHERE status = 'Waiting for tracking'";$result = $mysqli->query($sql);if($result->num_rows > 0) {    while($row = $result->fetch_assoc()) {        $id = $row['id'];        $tracking = $row['tracking'];        $carrier = $row['carrier'];        $link = $row['link'];        // get DOM from URL or file        $html = file_get_html($link);        // find td tags with data-qa=shipment-tracking-number        foreach($html->find('td[data-qa=shipment-tracking-number]') as $tracking)            $tracking = $tracking->plaintext;        // find td tags with data-qa=shipment-carrier        foreach($html->find('td[data-qa=shipment-carrier]') as $carrier)            $carrier = $carrier->plaintext;        if(isset($tracking)) {            $tracking = "UPDATE orders SET tracking = '$tracking' WHERE id = '$id'";            $tracking_result = $mysqli->query($tracking);            if($mysqli->query($tracking_result) === true) {                $pendnig = "UPDATE orders SET status = 'Pending' WHERE id = '$id'";                $pending_result = $mysqli->query($pending);            }        }        if(isset($carrier)) {            $carrier = "UPDATE orders SET carrier = '$carrier' WHERE id = '$id'";            $carrier_result = $mysqli->query($carrier);        }    }}执行文件时,仅更新我的“跟踪”和“承运人”,而不将状态更新为“待定”,并且仅针对第一行,而不针对其他行。
查看完整描述

2 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

您可以检查更新查询是否成功,如下所示:


if($tracking_result) {

    $pendnig = "UPDATE orders SET status = 'Pending' WHERE id = '$id'";

    $pending_result = $mysqli->query($pending);

}

希望对你有帮助。


查看完整回答
反对 回复 2021-06-19
?
弑天下

TA贡献1818条经验 获得超8个赞

我已经用新代码修复了它。


$sql = "SELECT * FROM orders WHERE status = 'Waiting for tracking'";

$result = $mysqli->query($sql);


if($result->num_rows > 0) {

    while($row = $result->fetch_assoc()) {

        $id = $row['id'];

        $tracking = $row['tracking'];

        $carrier = $row['carrier'];

        $link = $row['link'];


        // get DOM from URL or file

        $html = file_get_html($link);


        // find td tags with data-qa=shipment-tracking-number

        foreach($html->find('td[data-qa=shipment-tracking-number]') as $tracking)

            $tracking = $tracking->plaintext;


        // find td tags with data-qa=shipment-carrier

        foreach($html->find('td[data-qa=shipment-carrier]') as $carrier)

            $carrier = $carrier->plaintext;


        if(isset($tracking)) {

            $tracking = "UPDATE orders SET tracking = '$tracking' WHERE id = '$id'";

            $tracking_result = $mysqli->query($tracking);


            if($tracking_result === true) {

                $pendnig = "UPDATE orders SET status = 'Pending' WHERE id = '$id'";

                $pending_result = $mysqli->query($pendnig);

            }

        }


        if(isset($carrier)) {

            $carrier = "UPDATE orders SET carrier = '$carrier' WHERE id = '$id'";

            $carrier_result = $mysqli->query($carrier);

        }


        // clean up memory

        $html->clear();

        unset($html);

    }

}


查看完整回答
反对 回复 2021-06-19
  • 2 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号