簡體   English   中英

更新表php-mysql中的值

[英]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.

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