簡體   English   中英

如何“刪除行后多次更新行”?使用PHP和MySQL

[英]How to 'Multiple update rows once a row is deleted"? Using PHP and MySQL

很抱歉,這可能是一個愚蠢的問題,但是我希望獲得一些幫助,以使我能夠對問題形成正確的語法。 使用語言:PHP,MySQL

這是場景:

我有一個名為tbl_book的表

+----+------+-------+------------+
| id | code |  copy | date_added |
+----+------+-------+------------+
| 1  | IX3V |   1   | 2018-12-09 |
| 2  | IX3V |   2   | 2018-12-09 |
| 4  | BN9Z |   1   | 2018-12-10 |
| 5  | BN9Z |   2   | 2018-12-10 |
| 6  | BN9Z |   3   | 2018-12-11 |
| 7  | BN9Z |   4   | 2018-12-12 |
| 8  | BN9Z |   5   | 2018-12-12 |
+----+------+-------+------------+

現在,例如,我想刪除id = 6。 刪除該行之后,我想將所有副本集從1,2,4,5設置為1,2,3,4,其中代碼= BN9Z。

預期產量:

+----+------+-------+------------+
| id | code |  copy | date_added |
+----+------+-------+------------+
| 1  | IX3V |   1   | 2018-12-09 |
| 2  | IX3V |   2   | 2018-12-09 |
| 4  | BN9Z |   1   | 2018-12-10 |
| 5  | BN9Z |   2   | 2018-12-10 |
| 7  | BN9Z |   3   | 2018-12-12 |
| 8  | BN9Z |   4   | 2018-12-12 |
+----+------+-------+------------+

這個問題是針對我的項目的,我很高興為您提供一個相關的解決方案。 謝謝。

如果您知道要刪除的行的codecopy的值,則可以使用以下命令:

UPDATE `tbl_book`
SET `copy` = `copy`-1
WHERE `code` = `BN9Z` and `copy` > 3

更新

以下是一些代碼,這些代碼將刪除行並稍后(按ID)更新行。

mysql _...函數已棄用,並已從當前(7)版本的PHP中刪除。 改用mysqli函數。

include("db_connect.php");  //  Update to use mysqli functions instead of mysql functions.

$get_to_delete_no = "3";
//  Get the info from the row to be deleted
$rowinfo = mysqli_query("SELECT `id`,`code`,`copy` FROM `tbl_book` WHERE `id` = $get_to_delete_no");
if($rowinfo !== false) {
    $rslt = mysqli_query("DELETE FROM `tbl_book` WHERE `id` = $get_to_delete_no");
    if($rslt !== false) {
        $rslt = mysqli_query("UPDATE `tbl_book` SET `copy` = `copy` - 1 WHERE `copy` > ".$rowinfo[0][`copy`]." AND `code` = ".$rowinfo[0][`code`]);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM