使用MySQL 發布表單並更新多行
問題:
您已創建一個表單檢索具有特定圖庫ID 的所有照片,並允許使用者更新其標題和標籤。但是,目前程式碼不會更新資料庫中的任何行。
表單結構:
表單產生一個 HTML 照片列表,其中包含用於更新其照片的輸入欄位標題、標籤和用於識別 ID 的隱藏欄位。
更新查詢:
更新查詢迭代每個提交的表單,並為每張照片執行單獨的 UPDATE 語句。但是,依照編碼,查詢無法正確存取表單資料。
解決方案:
要成功更新多行,需要提交表單資料作為數組並在更新查詢中循環遍歷它們。
表單更新:
修改輸入欄位以將數值提交為陣列:
echo "<input type='text' name='photo_title[]' value='$title' /><br />"; echo "<input type='text' name='photo_tags[]' value='$tags' />"; echo "<input type='hidden' name='photo_id[]' value='$id' />";
更新查詢重寫:
迭代提交的值表單資料數組:
foreach ($_POST['photo_id'] as $key => $photo_id) { $id = $photo_id; $title = $_POST['photo_title'][$key]; $tags = $_POST['photo_tags'][$key]; $sql = "UPDATE photos SET title=?, tags=? WHERE id=?"; $query = $db->prepare($sql); $query->execute(array($title, $tags, $id)); }
此更新的程式碼將正確循環提交的表單數據,提取更新的值,並為每張照片執行UPDATE 語句,成功更新MySQL 資料庫中的多行。
以上是如何使用表單更新 MySQL 資料庫中的多行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!