2017-06-15 12 views
0

CSV to SQLのアップロードページで、そのアップロードのすべてのテーブル行にタイムスタンプを追加しました。このコードは動作します:CSVデータのアップロード後にSQLから計算するPHP

//get the csv file 
$file = $_FILES['csv']['tmp_name']; 
ini_set('auto_detect_line_endings',TRUE); 
$handle = fopen($file,"r"); 
$count = 0; 

//loop through the csv file and insert into database 
do { 
    if ($count>=0) { 
     mysql_query("INSERT INTO cain (fill_date, ndc, quantity, days_supply, mail_indicator, plan_paid, member_paid, dispensing_fee, compound_indicator, nabp, daw, formulary_indicator, member_id, unc_price, total_members, total_period_rebate) VALUES 
      ('".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."','".$data[4]."','".$data[5]."','".$data[6]."','".$data[7]."','".$data[8]."','".$data[9]."','".$data[10]."','".$data[11]."','".$data[12]."','".$data[13]."','".$data[14]."','".$data[15]."')"); 
    } 
} while ($data = fgetcsv($handle,1000,",")); 
// 

私はこの同じページまたは別のページのいずれか、最新のアップロード(「タイムスタンプ」)でMySQLのデータから合計を計算するためにPHPを使用しようとしています。これは私が試したコードであり、動作しません。最近更新されたデータである「タイムスタンプ」によってデータグループ全体の計算を使用しようとしている場合、どのようにこれらのクエリを構造化できますか? 各行に/ subtract/multiply/divideを追加し、それらの結果を合計する必要があります。

{ 
$a= mysql_query("SELECT SUM(unc_price + dispensing_fee - plan_paid - member_paid) FROM cain WHERE timestamp = 'SELECT MAX(timestamp) FROM cain'"); 
} 
echo $a; 
?> 
+1

上記のように括弧を使用する必要があります。サブクエリを使用する場合は、引用符ではなくカッコで囲みます。 –

答えて

0
{ 
$a= mysql_query("SELECT SUM(unc_price + dispensing_fee - plan_paid - member_paid) FROM cain WHERE timestamp = (SELECT MAX(timestamp) FROM cain')"); 
} 
echo $a; 
?> 

あなたは、文字列ではなく、そのクエリの結果にタイムスタンプを比較している

+0

ページに「リソースID#3」が返されました。これらの行の加算/減算の総和を返したいと思います。 – mgmtphd

+0

最大タイムスタンプを持つ行が多数あることを確認してください。 –

+0

はい、これらの行が生成されたCSVの後に同じタイムスタンプを持つ10-20行がある可能性があります。 – mgmtphd

関連する問題