簡體   English   中英

使用foreach循環更新數據庫行

[英]update database rows using foreach loop

我的數據庫中有一個表稱為“ books_term”,

當我提交書籍時,書籍及其類別存儲在此表中。 我的一些書有多個類別,因此我決定將每個類別存儲為新行+ book_id

例如 :

id             category_id            book_id
 1                   23                 14
 2                   45                 14
 3                   30                 14

如您所見,這是“ books_term”表結構,書號14具有三個類別(23,45,30)

一切正常,直到我決定在我的cms的管理面板中更新這本書。

問題是:如何更新此圖書類別? 以及如果該書存在於“ books_term”中,否則如何更新書的類別? 我應該為此目的使用foreach循環嗎?

這是我的php代碼,無法正常運行,

   $values = $_POST['category'];
   $myid = $_POST['bookid'];
   foreach($values as $value) {
     $check = "SELECT * FROM books_term WHERE book_id = '$myid'";
     $checkresult = mysqli_query($connection,$check);
     if(mysqli_num_rows($checkresult) > 0){
        $update_query = "UPDATE books_term SET category_id = '$value' WHERE book_id = '$myid'";
        mysqli_query($connection,$update_query);
        echo 'updated';
     }else{
        $insert_query = "INSERT INTO books_term (category_id,book_id) VALUES ('$value','$myid')";
        mysqli_query($connection,$insert_query);
        echo 'inserted';
    }
}

在編輯頁面中,當我選擇多個類別並單擊“更新”按鈕時,它只是將最后選擇的類別設置為book_id 14,如下圖所示:

在此處輸入圖片說明

您可以先刪除數據,然后再次插入

$values = $_POST['category'];
$myid = $_POST['bookid']; 
$delete_query = "DELETE FROM books_terms WHERE book_id='$myid'";
mysqli_query($connection,$delete_query);
foreach($values as $value) {
    $insert_query = "INSERT INTO books_term (category_id,book_id) VALUES ('$value','$myid')";
    mysqli_query($connection,$insert_query);
    echo 'inserted';
}

暫無
暫無

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

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