簡體   English   中英

將數據從 html 表插入到 mysql

[英]insert data from html table to mysql

首先,我將 CSV 轉換為 html 表,接下來我將 html 表中的數據發布到下面的腳本中,然后將新記錄插入數據庫:

foreach($file_data as $row)
 {
  $data[] = '("'.$row[$_POST["sku"]].'", "'.$row[$_POST["stock"]].'")';
 }

 if(isset($data))
 {
  $query = "
  INSERT INTO products 
  (sku, stock) 
  VALUES ".implode(",", $data)."
  ";

以上 function 工作正常,我可以將示例 1000 條記錄插入數據 mysql。

現在我需要更改此 function 並更新 mysql 表。

我嘗試這樣的:

 $file_data = $_SESSION['file_data'];

 unset($_SESSION['file_data']);

 foreach($file_data as $row)
 {
  $data[] = '("'.$row[$_POST["sku"]].'")';
  $title[] = '("'.$row[$_POST["title"]].'")';
  $lang_id[] = '("'.$row[$_POST["lang_id"]].'")';
 }

 if(isset($data))
 {
  $query = "
  UPDATE product_details
  SET title = ".implode(",", $title)." 
  WHERE sku = ".implode(",", $data)." AND lang_id = ".implode(",", $lang_id)."
  ";

  $statement = $connect->prepare($query);

  if($statement->execute())
  {
   echo 'Data Imported Successfully';
  }
 }

此更新 function 有效,但僅當可用/在 CSV 文件(html 表)中發布 1 條記錄時。 當我嘗試從 html 表(csv 文件)更新/發布示例 2 或更多記錄時,無法正常工作。

我目前從上面的 function 知道我只發布 1 條記錄時得到結果:

UPDATE product_details
SET title = title1 WHERE sku = "P6951H0E3-Q12"  AND lang_id = 1;

然后這個上面的查詢工作。 但是當我嘗試發布 2 條或更多條記錄時,我會得到 output 查詢,如下所示:

UPDATE product_details
    SET title = title1 WHERE sku = "P6951H0E3-Q12"  AND lang_id = 1
    SET title = title2 WHERE sku = "PLD_4051/S";" AND lang_id = 1

而上面的 SQL 查詢永遠不會起作用,但是如何獲得這樣的結果:

UPDATE product_details SET title = "title1" WHERE sku = "P6951H0E3-Q12" AND lang_id = "1"; 
UPDATE product_details SET title = "title2" WHERE sku = "PLD_4051/S" AND lang_id = "1";

我認為這會奏效

$file_data = $_SESSION['file_data'];

unset($_SESSION['file_data']);

foreach ($file_data as $row) {
    $data = $row[$_POST["sku"]];
    $title = $row[$_POST["title"]];
    $lang_id = $row[$_POST["lang_id"]];

    if (isset($data)) {
        $statement = $connect->prepare("UPDATE product_details  SET title = '$title'
        WHERE sku = '$data' AND lang_id = '$lang_id'");

        if (!$statement->execute()) {
            $error = 'None or part of the data was updated';
        }
    }
}
echo $error ?? 'Data Updated Successfully';

暫無
暫無

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

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