6

我正在为我们公司创建一个报价系统,但遇到了一个小问题。这是纲要;我有两张表,一张名为数据,另一张名为 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 费率未正确对齐。我该如何解决这个问题?

表输出:

图片

这就是我用来在 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);
4

1 回答 1

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

于 2012-10-05T14:46:51.547 回答