2012-10-05 84 views
6

我正在爲我們公司創建一個報價系統,並且我遇到了一個小問題。這裏是破敗;我有兩個表,一個是命名數據,另一個是命名的zip。客戶輸入他們的性別,年齡,如果他們使用菸草,郵政編碼和州。輸出PHP中的Mysql數組

這裏的數據表:

image

這裏的拉鍊表:

image

我查詢的兩個表基於壓縮查找代碼加入。這裏是我正在使用的查詢:

SELECT data.Monthly_Rate, zips.ZIP_LOOKUP_CODE AS Expr1, zips.State, zips.County, zips.City, zips.Zipcode 
FROM data INNER JOIN 
zips ON data.ZIP_LOOKUP_CODE = zips.ZIP_LOOKUP_CODE 
WHERE (zips.Zipcode = '$zipcode') AND 
(data.Company_Old LIKE '%Blue Cross%') AND 
(data.Plan IN ('A','F','F (High)','G','N')) AND 
(data.Gender = '$gender') AND 
(data.Age = '$age') AND 
(data.Tobacco = '$tobacco') AND 
(data.State = '$state'); 

現在我想要做的是輸出這在php中的表中。我遇到的問題是「計劃」欄下有多個計劃字母。我只想返回5個不同的問題,但問題是一些公司不提供全部5個這樣的計劃,所以在這種情況下,當我輸出數組時,某個計劃的費率將排列在錯誤的列中在桌子裏。

基本上,我不知道如何正確對齊應該在特定列中的數據。在計劃A,F和N僅適用於公司的情況下,它將填滿第一個三個字段,並且計劃N的比率不會在計劃N列中排列。

我需要弄清楚如何將給定的費率與Plan信件相關聯,並在表格中正確輸出。在下面的例子中,計劃費率是111.40美元,計劃F是135.37,計劃N費率是96.52美元。正如你所看到的,計劃N率並不正確。我該如何解決這個問題?

表輸出:

image

這是我使用的輸出數組中的PHP:

while($row = mysql_fetch_array($PlanRates)) 
{ 
$Plan = "$" . number_format($row['Monthly_Rate'], 2, '.', ''); 
echo "<td align='center'>$Plan</td>";   
} 
echo "</tr>"; 
mysql_free_result($PlanRates); 

回答

2

檢索計劃,以及在您的SQL查詢

SELECT data.Monthly_Rate, data.Plan ... 

然後用be低代碼

while($row = mysql_fetch_array($PlanRates)) { 
    $Plans[$row['Plan']] = "$" . number_format($row['Monthly_Rate'], 2, '.', ''); 
} 
echo "<td align='center'>".(isset($Plans['A']) ? $Plans['A'] : '')."</td>"; 
echo "<td align='center'>".(isset($Plans['F']) ? $Plans['F'] : '')."</td>"; 
echo "<td align='center'>".(isset($Plans['F (High)']) ? $Plans['F (High)'] : '')."</td>"; 
echo "<td align='center'>".(isset($Plans['G']) ? $Plans['G'] : '')."</td>"; 
echo "<td align='center'>".(isset($Plans['N']) ? $Plans['N'] : '')."</td>"; 

不應該這樣混合你的數據處理邏輯和你的演示文稿。您應該使用從中運行查詢並將數據作爲數組返回的函數。然後遍歷html標記中的數組。

+0

Mihai,謝謝你。有效。如果沒有檢索到5個計劃,我應該怎麼做?現在,如果沒有檢索到該特定公司,則顯示空白​​。我不想顯示空白的tds,如果所有5個計劃都不可用,就根本不顯示任何內容。 – Eric

+0

然後,您必須將「while」循環移至開始「」之前。然後把''和所有'​​'放在'if(sizeof($ Plans)> 0){echo「」;回聲「 air4x