1

OK皆さん、これがあなたにとって楽しいものです。

そのため、バックオフィスシステムにはすべてのクルーズ運賃が含まれており、バックオフィスシステムによる運賃のエクスポートをWebサイトにインポートできるようにする小さなスクリプトを作成しました。

これは、バックオフィスシステムがクルーズコード(P210など)をエクスポートし、Webサイトのデータベースに、各運賃をレコードとして含む運賃テーブルがあり、「cruise_id」によって関連するクルーズに接続されていることを除いて、適切なスクリプトです。

クルーズテーブルはこんな感じです

IDタイトルコードが出発します.....など

運賃表はこんな感じです

idcruise_id運賃オファー...など

サイトではうまく機能しますが、バックオフィスのエクスポートでは、Webサイトでのクルーズの一意の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>";
   }
   ?>

私はそれを大丈夫説明したと思います...

リッチ :)

4

2 に答える 2

0

うーん、トリックを行う前のトリガーではありませんか? 「各行のxyに挿入する前に」トリガーし、「new.cruise_idがnullの場合はcruise_idに選択」をチェックします。コードは ID のような数字ではないため、コード (P120) 用の列を追加する必要があるかもしれません。スペースを節約するために、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 に答える