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

我正在尝试更新“跟踪”、“承运人”、“状态”行,其中状态为“等待跟踪”


$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);

        }

    }

}

执行文件时,仅更新我的“跟踪”和“承运人”,而不将状态更新为“待定”,并且仅针对第一行,而不针对其他行。


12345678_0001
浏览 133回答 2
2回答

哔哔one

您可以检查更新查询是否成功,如下所示:if($tracking_result) {    $pendnig = "UPDATE orders SET status = 'Pending' WHERE id = '$id'";    $pending_result = $mysqli->query($pending);}希望对你有帮助。

弑天下

我已经用新代码修复了它。$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);    }}
打开App,查看更多内容
随时随地看视频慕课网APP