从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>";
   }
   ?>

我希望我已经解释好了…

富:)

嗯,before触发器不会起作用吗?触发"在xy上为每行插入之前",然后检查"如果new.cruise_id为null,则选择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>";
   }
  ?>