[英]update values in table php-mysql
我有這張桌子:
+----+------------+-----------------------+
| ID | ID_PRODUCT | LINK_DOWNLOAD |
+----+------------+-----------------------+
| 1 | 2369 | folder/2015.03.12.pdf |
| 2 | 3694 | folder/2014.01.10.pdf |
| 3 | 56 | folder/2016.09.25.pdf |
+----+------------+-----------------------+
結束代碼php:
<form action="upload_file.php" method="post" enctype="multipart/form-data" name="upload_file"><br>
<label for="UploadFileField"></label><br>
<input type="file" name="UploadFileField"/>
<input type="submit" name="UploadButton" value="Upload" /><br>
<input type ="text" name="UPLOAD_COD" />
</form>
<?php
include "bd_cnx.php";
if (isset ($_FILES['UploadFileField'])){
$UploadName = $_FILES['UploadFileField'] ['name'];
$UploadName = mt_rand (100000, 999999).$UploadName;
$UploadTmp = $_FILES['UploadFileField'] ['tmp_name'];
$UploadType = $_FILES['UploadFileField'] ['type'];
$FileSize = $_FILES['UploadFileField'] ['size'];
$UploadName = preg_replace("#[^a-z0-9.]#i", "", $UploadName);
if(($FileSize > 1250000)){
die ("Error - File to big");
}
if(!$UploadTmp) {
die ("No File Selected");
}
else {
if (move_uploaded_file($UploadTmp, "Upload/$UploadName")) {
$UPLOAD_COD = $_POST['UPLOAD_COD'];
$sql = "INSERT INTO download (ID_PRODUCT,LINK_DOWNLOAD) VALUES ('$UPLOAD_COD','Upload/$UploadName')";
$result = $conn->query($sql);
echo '<script> alert("Successfully inserted"); window.location ="/index.php";</script>';
}
}
}
?>
2015.03.12.pdf文件今天更新,變成2016.09.25.pdf。 當我在輸入“UPLOAD_COD”中輸入數字2369時,我想從服務器刪除文件2015.03.12.pdf並替換為2016.09.25.pdf,並在LINK_DOWNLOAD列中更新為新鏈接(文件夾) /2015.03.12.pdf)。 謝謝!
只需在執行插入查詢后添加刪除查詢
$deleteSql = "Delete from download where ID_PRODUCT = '".$UPLOAD_COD."'";
$conn->query($deleteSql);
您必須更新數據庫中的相應條目:
UPDATE download SET LINK_DOWNLOAD='folder/2016.09.25.pdf' WHERE ID=1
我在ID
列上使用WHERE
標准,因為您沒有告訴每個產品是否只有一個條目。 如果每個產品只有一個條目,則LINK_DOWNLOAD
也將在產品表中。
通過查看您的表,您可能有一個產品的多個下載鏈接,因為它似乎是一個鏈接表,所以如果您想更新一個條目,也許您只想更新此條目。
所以在你的代碼中,我會添加一個塊來查找UPLOAD_COD
product_id輸入的現有條目。
然后,如果要更新指向物理文件的鏈接,則必須刪除/存檔初始文件。 所以,你可以看看file_exists php命令,就像這個問題一樣 。
要完成,我只會在此產品有現有條目時處理更新(也許您有其他標准,或者至少,如果需要,您可以稍后添加其他標准)。
希望這可以幫助 !
所以你想刪除ID_PRODUCT = 2369的文件? 只需從數據庫中獲取它的LINK_DOWNLOAD
您在上傳並插入文件后放置此代碼
//first create a query that select the row of the data that you are finding
$currentSql = "Select * from download where ID_PRODUCT = '".$UPLOAD_COD."'";
$current = $conn->query($currentSql);
// then fetch it's result then unlink the file from the server
while($row = $current->fetch_assoc()) {
$file = $row['LINK_DOWNLOAD'];
// check if file is exist then delete
if (file_exists($file)) {
unlink($file);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.