好的伙计们,这对你来说很有趣。
所以我们的后台系统包含所有邮轮票价,我们制作了一个漂亮的小脚本,允许后台系统将票价输出导入网站。
这是一个简洁的脚本,除了......后台系统导出巡航代码,例如P210和网站的数据库有一个票价表,其中包含每个票价作为记录,通过'cruise_id'连接到相关的邮轮
所以巡航表就是这样的
id标题代码离开......等等
,票价表就像这样
id cruise_id票价优惠等等
在网站上运行良好,但后台导出并不知道网站上游轮的唯一ID。
在我们上传csv文件之后,在插入之前,是否有可能使用代码从巡航表中查找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>";
}
?>
我希望我已经解释好了......
Rich:)
答案 0 :(得分:0)
嗯,之前的触发器不会做这个伎俩吗?触发“在每行上插入xy之前”,然后检查“如果new.cruise_id为null,则选择进入cruise_id”。也许您必须为代码添加额外的列(P120),因为代码不是像ID那样的数字。为了节省空间,您可以在查找id后在同一个触发器中将代码列值设置为null。
单独的加载程序表或可插入的视图(也许)也可以是一个选项。
答案 1 :(得分: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>";
}
?>