php - 如果条件相同那么如何在 php 中更新多个查询

标签 php mysql

我想在条件相同时更新多个查询。它只对一个查询有效,其余查询将被跳过而不更新。谁能告诉我它是如何工作的? PHP代码是:

<?php
include("Database/connection.php");

$sql = "SELECT *  FROM registration,billing_month";
$result = $link->query($sql); 

    while($row = $result->fetch_assoc()) 
    {
        $regid = $row['Reg_id'];
        $billid = $row['Bill_id'];
        $issuedate = $row['Bill_issue_date'];
        $duedate = $row['Bill_due_date'];
        $currentdues = $row['Current_Dues'];
        $currentbill = $row['Current_Bill'];
        $arrears = $row['Arrears'];
        $surcharge = $row['Surcharge'];
        $currentsurcharge = $row['Current_Surcharge'];

        $updatesurcharge = $currentsurcharge + $surcharge;
        $updatedsurcharge = 0;
        $updatebill = $currentbill + $currentdues;
        $updatecurrentbill = 0;
        $updatearrears = $arrears + $currentbill;
        $updatedarrears = $arrears + $currentsurcharge;
        $updatearrearsfrombill = 0;
        $updatearrearsfromsurcharge = 0;
        $addsurchargewitharrears = $arrears + $currentsurcharge;

if (strtotime(date('Y-m-d')) >= strtotime($issuedate)) 
{

  $sql_update = "UPDATE  `registration` SET `Current_Bill`= $updatebill WHERE `Reg_id` = $regid";

$sql_update = "UPDATE  `billing_month` SET `Current_Dues`= $updatecurrentbill WHERE `Bill_id` = $billid";

$sql_update = "UPDATE  `registration` SET `Current_Surcharge`= $updatesurcharge WHERE `Reg_id` = $regid";

$sql_update = "UPDATE  `billing_month` SET `Surcharge`= $updatedsurcharge WHERE `Bill_id` = $billid";

  mysqli_query($link, $sql_update);
}
}
?>

最佳答案

在每个查询语句的末尾添加;,然后连接变量

例子

$sql_update = "UPDATE  `registration` SET `Current_Bill`= $updatebill WHERE `Reg_id` = $regid;";
$sql_update .= "UPDATE  `billing_month` SET `Current_Dues`= $updatecurrentbill WHERE `Bill_id` = $billid;";
$sql_update .= "UPDATE  `registration` SET `Current_Surcharge`= $updatesurcharge WHERE `Reg_id` = $regid;";
$sql_update .= "UPDATE  `billing_month` SET `Surcharge`= $updatedsurcharge WHERE `Bill_id` = $billid;";

    mysqli_query($link, $sql_update);

Alternatively

您可以重命名您的变量,例如 $sql_update1$sql_update2 等,然后一个一个地调用它们。

例子:-

$sql_update1 = "UPDATE  `registration` SET `Current_Bill`= $updatebill WHERE `Reg_id` = $regid";
$sql_update2 = "UPDATE  `billing_month` SET `Current_Dues`= $updatecurrentbill WHERE `Bill_id` = $billid";
$sql_update3 = "UPDATE  `registration` SET `Current_Surcharge`= $updatesurcharge WHERE `Reg_id` = $regid";
$sql_update4 = "UPDATE  `billing_month` SET `Surcharge`= $updatedsurcharge WHERE `Bill_id` = $billid";

    mysqli_query($link, $sql_update1);
    mysqli_query($link, $sql_update2);
    mysqli_query($link, $sql_update3);
    mysqli_query($link, $sql_update4);

关于php - 如果条件相同那么如何在 php 中更新多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32203172/

相关文章:

PHP/html 电子邮件表单不再提交到 mysql 数据库

mysql - 具有许多嵌套子句的查询速度缓慢

php - 内容未发布到数据库但收到成功消息

php - 将数组值插入数据库

php - 选中复选框时仅重新加载一个 DIV

MySQL外键约束、级联删除

php - 从 mysql 获取数组创建命名 session 数组

php - MySQL Select 查询 - 限制不是记录数,而是返回结果的类型

mysql - 将 SQL 查询转换为 JPQL

mysql - phpMyAdmin - 我无法导出 SQL 表?语法已经给出了吗?