2012-04-04 72 views
1

好的人,這裏有一個很有趣的人。從csv文件中獲取一個值,查看數據庫,獲取與該值匹配的記錄的ID

因此,我們的後臺系統擁有所有的郵輪票價,並且我們製作了一個很好的小腳本,允許後臺系統導出票價導入網站。

這是一個整潔的腳本,除了......後臺系統導出郵輪代碼例如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>"; 
    } 
    ?> 

我希望我已經解釋過確定...

豐富:)

回答

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

嗯,不會觸發之前做的伎倆?在爲每行插入xy之前觸發「,然後檢查」如果new.cruise_id爲null,則選擇到cruise_id「。也許你必須爲代碼添加一個額外的列(P120),因爲代碼不是像ID那樣的數字。爲了節省空間,您可以在查找id之後將代碼列值設置爲null。

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