簡體   English   中英

從 csv 文件中獲取一個值,查看數據庫,獲取與該值匹配的記錄的 id

[英]getting a value from a csv file, looking at the database, getting the id of the record that matches the value

好的伙計們,這是給你們的一個有趣的。

所以我們的后台系統包含所有游輪票價,我們制作了一個漂亮的小腳本,允許后台系統導出票價以導入網站。

這是一個簡潔的腳本,除了......后台系統導出郵輪代碼,例如 P210,並且網站的數據庫有一個票價表,其中包含每個票價作為記錄,通過“cruise_id”連接到相關的郵輪

所以巡航表是這樣的

ID標題代碼離開.....等

票價表是這樣的

id cruise_id 票價優惠...等等

在網站上運行良好,但后台導出不知道網站上郵輪的唯一 ID。

那么有沒有可能,在我們上傳 csv 文件之后,在它插入之前,使用代碼從 cruises 表中查找 cruise_id,並在插入查詢中使用它?

到目前為止,這是上傳腳本

<?php
 require_once('includes/connection.php');
 if(isset($_POST['submit']))
   {
     $filename=$_FILES['filename']['tmp_name'];
     $handle = fopen("$filename", "r");
     while (($data = fgetcsv($handle, 100000, ",")) !== FALSE)
     {

       $import="INSERT into fares_usa(cruise_id, active, type, category, placement, deck, fare, offered, status, sortorder) 
       values('".mysql_real_escape_string($data[0])."',
       '".mysql_real_escape_string($data[1])."',
       '".mysql_real_escape_string($data[2])."',
       '".mysql_real_escape_string($data[3])."',
       '".mysql_real_escape_string($data[4])."',
       '".mysql_real_escape_string($data[5])."',
       '".mysql_real_escape_string($data[6])."',
       '".mysql_real_escape_string($data[7])."',
       '".mysql_real_escape_string($data[8])."',
       '".mysql_real_escape_string($data[9])."')";
       mysql_query($import, $connection) or die(mysql_error());
     }
     fclose($handle);
     print "Import done";
   }
   else
   {

      print "<form enctype='multipart/form-data' action='fileupload.php' method='POST'>";
      print "Select file to import:";
      print "<input type='file' name='filename' size='20'>";
      print "<input type='submit' name='submit' value='submit'></form>";
   }
   ?>

我希望我已經解釋清楚了......

富有的:)

嗯,之前的觸發器不會解決問題嗎? 觸發“在為每一行插入 xy 之前”,然后檢查“如果 new.cruise_id 為 null,則將 select 放入 cruise_id”。 也許您必須為代碼 (P120) 添加一個額外的列,因為代碼不是像 ID 那樣的數字。 為了節省空間,您可以在查找 id 后在同一個觸發器中將代碼列值設置為 null。

一個單獨的加載器表或一個可插入的視圖(可能)也可以是一個選項。

修好了...這是代碼

<?php
 require_once('includes/connection.php');
 if(isset($_POST['submit']))
   {
     $filename=$_FILES['filename']['tmp_name'];
     $handle = fopen("$filename", "r");
     while (($data = fgetcsv($handle, 100000, ",")) !== FALSE)
     {
         $lookup_cruise = mysql_real_escape_string($data[0]);

    $query_cruiseid = "SELECT id FROM cruises WHERE code = '{$lookup_cruise}'";
    $get_cruiseid = mysql_query($query_cruiseid, $connection);
        $cruise_id = mysql_fetch_assoc($get_cruiseid);


       $import="INSERT into fares_usa(cruise_id, active, type, category, placement, deck, fare, offered, status, sortorder) 
   values('".mysql_real_escape_string($cruise_id['id'])."',
   '".mysql_real_escape_string($data[1])."',
   '".mysql_real_escape_string($data[2])."',
   '".mysql_real_escape_string($data[3])."',
   '".mysql_real_escape_string($data[4])."',
   '".mysql_real_escape_string($data[5])."',
   '".mysql_real_escape_string($data[6])."',
   '".mysql_real_escape_string($data[7])."',
   '".mysql_real_escape_string($data[8])."',
   '".mysql_real_escape_string($data[9])."')";
   mysql_query($import, $connection) or die(mysql_error());
     }
     fclose($handle);
     print "Import done";
   }
   else
   {

  print "<form enctype='multipart/form-data' action='fileupload.php' method='POST'>";
  print "Select file to import:";
  print "<input type='file' name='filename' size='20'>";
  print "<input type='submit' name='submit' value='submit'></form>";
   }
  ?>

暫無
暫無

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

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