1

好的,伙计们,这对你来说很有趣。

所以我们的后台系统包含所有的游轮票价,我们制作了一个不错的小脚本,允许后台系统导出的票价导入网站。

这是一个简洁的脚本,除了...后台系统导出游轮代码,例如 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>";
   }
   ?>

我希望我已经解释过了...

富有的 :)

4

2 回答 2

0

嗯,前触发器不会起作用吗?触发“在每行插入 xy 之前”,然后检查“如果 new.cruise_id 为空,则选择进入 Cruise_id”。也许您必须为代码(P120)添加一个额外的列,因为代码不是像 ID 这样的数字。为了节省空间,您可以在查找 id 后在同一触发器中将代码列值设置为 null。

单独的加载器表或可插入视图(也许)也可以是一种选择。

于 2012-04-04T11:11:13.957 回答
0

修复它...这是代码

<?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>";
   }
  ?>
于 2012-04-05T11:30:22.303 回答