在PHP中输出Mysql数组

时间:2012-10-05 14:31:51

标签: php mysql

我正在为我们公司创建一个报价系统,我遇到了一个小问题。这是破败的;我有两个表,一个名为data,另一个名为zip。如果客户使用烟草,邮政编码和州,则输入他们的性别,年龄。

以下是数据表:

image

这是拉链表:

image

我根据zip查找代码查询了要加入的两个表。这是我正在使用的查询:

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列中排成一行。

我需要弄清楚如何将给定的费率与计划字母相关联,并在表格中正确输出。在下面的例子中,计划A的费率是111.40美元,计划F是135.37,计划N的费率是96.52美元。如您所见,Plan 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);

1 个答案:

答案 0 :(得分:2)

在SQL查询中检索计划

SELECT data.Monthly_Rate, data.Plan ...

然后使用以下代码

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标记中迭代数组。