2016-01-28 56 views
-1

Iam遇到查詢。我有兩個查詢正在運行。我的需求是必須執行並完成第一個查詢。完成第一個查詢後,它應該執行第二個查詢。我將如何做到這一點?這個php頁面有點大,所以我不會發布它。好。現在這是第一個PHP頁面,它使用最新的貨幣數據更新價格數據。該腳本如下:在php/mysql中一個接一個執行兩個查詢

<?php 
$tender_id=$_GET['tender_id']; 

include('config.php'); 

?> 

<?php 
$sql_rateinr = "select * from currency1"; 

$result_rateinr = mysql_query($sql_rateinr) or die($sql_rateinr."<br/><br/>".mysql_error()); 
while($row_rate = mysql_fetch_array($result_rateinr)) 
{ 

$currency= $row_rate['currency']; 
    if ($currency=='INR') { 
     $rate_inr1 = $row_rate['rate']; 
    } else if ($currency=='USD') { 
     $rate_usd = $row_rate['rate']; 
    } else if ($currency=='GBP'){ 
     $rate_gbp = $row_rate['rate']; 
    } else if ($currency=='EUR'){ 
     $rate_eur = $row_rate['rate']; 
    } else if ($currency=='SGD'){ 
     $rate_sgd = $row_rate['rate']; 
    } else if ($currency=='AUD'){ 
     $rate_aud = $row_rate['rate']; 
    } else if ($currency=='CAD'){ 
     $rate_cad = $row_rate['rate']; 
    } else if ($currency=='CHF'){ 
     $rate_chf = $row_rate['rate']; 
    } else if ($currency=='JPY'){ 
     $rate_jpy = $row_rate['rate']; 
    } else if ($currency=='MYR'){ 
     $rate_myr = $row_rate['rate']; 
    } else if ($currency=='ZAR'){ 
     $rate_zar = $row_rate['rate']; 
    } 
} 

//(Total/item rate) * INR rate 
$result = mysql_query("SELECT * FROM comparitive_st_sup where tender_id='$tender_id'"); 
//echo '<table width=100% border=1>'; 
while($row = mysql_fetch_array($result)) 
{ 
$id=$row['id']; 
$item_name=$row['item_name']; 
$currency1 =$row['currency']; 
$total =$row['total']; 
$total_inr =$row['total_inr']; 
$supplier_name =$row['supplier_name']; 

if ($currency1=='INR') { 
    $convertedtotal = $total; 
} else if ($currency1=='USD') { 
    $convertedtotal = ($total * $rate_inr1); 
} else if ($currency1=='GBP'){ 
    $convertedtotal = (($rate_inr1/$rate_gbp) * $total); 
} else if ($currency1=='EUR'){ 
    $convertedtotal = (($rate_inr1/$rate_eur) * $total); 
} else if ($currency1=='SGD'){ 
    $convertedtotal = (($rate_inr1/$rate_sgd) * $total); 
} else if ($currency1=='AUD'){ 
    $convertedtotal = (($rate_inr1/$rate_aud) * $total); 
} else if ($currency1=='CAD'){ 
    $convertedtotal = (($rate_inr1/$rate_cad) * $total); 
} else if ($currency1=='CHF'){ 
    $convertedtotal = (($rate_inr1/$rate_chf) * $total); 
} else if ($currency1=='JPY'){ 
    $convertedtotal = (($rate_inr1/$rate_jpy) * $total); 
} else if ($currency1=='MYR'){ 
    $convertedtotal = (($rate_inr1/$rate_myr) * $total); 
} else if ($currency1=='ZAR'){ 
    $convertedtotal = (($rate_inr1/$rate_zar) * $total); 
} 

$query_update = "UPDATE comparitive_st_sup SET total_inr = '$convertedtotal' WHERE id = '$id' and tender_id='$tender_id' "; 
mysql_query($query_update) or die ("Error in query: $query_update"); 

} 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
} 
?> 

這是第二個PHP頁面,用更新的貨幣數據,IAM更新另一個表中的數據:

查詢如下:

mysqli_query($con,"INSERT INTO quotation_terms (tender_id, export_charges, export_charges_inr, iata_charges, iata_charges_inr, coc_charges, coc_charges_inr, calibration_charges, calibration_charges_inr, tp_inspe_charges_inr, tp_inspe_charges, ultrason_inspe_charges_inr, ultrason_inspe_charges, opt_access_cost, opt_access_cost_inr, ext_warranty_cost_inr, ext_warranty_cost, inst_training_cost_inr, inst_training_cost, approx_freight_inr, approx_freight, other_charges_inr, other_charges, currency1) 

VALUES ('$tender_id','$export_charges','$exportinr','$iata_charges','$iatainr','$coc_charges','$cocinr','$calibration_charges','$calibrationinr','$tpinr','$tp_inspe_charges', '$ultrasoninr', '$ultrason_inspe_charges', '$opt_access_cost', '$optinr', '$extinr', '$ext_warranty_cost', '$instinr', '$inst_training_cost', '$freightinr', '$approx_freight', '$otherinr', '$other_charges', '$currency')"); 
echo "<br>Checkbox Values submitted to Terms DB"; 

運行後首先php查詢只應該運行第二個查詢。任何提示..?

+0

你的兩個查詢在哪裏? – Saty

+0

請寫下您的努力。 –

+0

@ Saty和@ AddWeb。我已經用php php腳本更新了這個問題。 –

回答

0

我假設第二個查詢依賴於放入先前查詢的內容。如果是這樣,你可能想看看「mysqli_insert_id」,它將得到在先前查詢中生成的ID。

更多信息:http://php.net/manual/en/mysqli.insert-id.php

+0

請不要建議不推薦使用,並且從PHP7中刪除函數。 –

+0

我的不好:http://php.net/manual/en/mysqli.insert-id.php –

0

我只是想簡單的這件事。我爲查詢邏輯創建函數。請嘗試。

function multiQueryExec($type = 'SELECT', $arrParam = array()){ 

    $returnVal = array(); 

    if($type == 'SELECT'){ 

     $tender_id = $arrParam['tender_id']; 

     //(Total/item rate) * INR rate 
     $result = mysql_query("SELECT * FROM comparitive_st_sup where tender_id='$tender_id'"); 

     while($row = mysql_fetch_array($result)){ 
      $id=$row['id']; 
      $item_name=$row['item_name']; 
      $currency1 =$row['currency']; 
      $total =$row['total']; 
      $total_inr =$row['total_inr']; 
      $supplier_name =$row['supplier_name']; 

      if ($currency1=='INR') { $convertedtotal = $total; 
      } else if ($currency1=='USD') { $convertedtotal = ($total * $rate_inr1); 
      } else if ($currency1=='GBP'){ $convertedtotal = (($rate_inr1/$rate_gbp) * $total); 
      } else if ($currency1=='EUR'){ $convertedtotal = (($rate_inr1/$rate_eur) * $total); 
      } else if ($currency1=='SGD'){ $convertedtotal = (($rate_inr1/$rate_sgd) * $total); 
      } else if ($currency1=='AUD'){ $convertedtotal = (($rate_inr1/$rate_aud) * $total); 
      } else if ($currency1=='CAD'){ $convertedtotal = (($rate_inr1/$rate_cad) * $total); 
      } else if ($currency1=='CHF'){ $convertedtotal = (($rate_inr1/$rate_chf) * $total); 
      } else if ($currency1=='JPY'){ $convertedtotal = (($rate_inr1/$rate_jpy) * $total); 
      } else if ($currency1=='MYR'){ $convertedtotal = (($rate_inr1/$rate_myr) * $total); 
      } else if ($currency1=='ZAR'){ $convertedtotal = (($rate_inr1/$rate_zar) * $total); 
      } 
     } 

     $returnVal['currency1'] = $currency1; 
     $returnVal['convertedtotal'] = $convertedtotal; 
    } 
    else { 
     $id = $arrParam['id']; 
     $convertedtotal = $arrParam['convertedtotal']; 
     $tender_id = $arrParam['tender_id']; 

     $query_update = "UPDATE comparitive_st_sup SET total_inr = '$convertedtotal' WHERE id = '$id' and tender_id='$tender_id' "; 
     mysql_query($query_update) or die ("Error in query: $query_update"); 
     $returnVal['tender_id'] = $tender_id; 
    } 
    return $returnVal; 

//Call for first select query after currency query 
$arrParam = array(); 
$arrParam['tender_id'] = $tender_id; 
$getResult = multiQueryExec('SELECT', $arrParam); 

//Call for update second query 
$arrParam = array(); 
$arrParam['tender_id'] = $tender_id; 
$arrParam['convertedtotal'] = $convertedtotal; 
$arrParam['id'] = $id; 
$getResult = multiQueryExec('SELECT', $arrParam); 

現在通過每個以上數據在第二頁上,而你從一臺移動到第二頁查看第二頁上相同的,如果可用的數據,則只能撥打quotation_terms項查詢否則第一頁上再次拋出。

+0

是的,謝謝。實際的場景是第一頁更新數據庫中的一些數據。第二個查詢只是使用數據庫中的更新數據。所以我想我不必將數據傳送到第二頁的權利? –

+0

我是否需要在窗體中調用函數? –