我正在为我们公司创建一个报价系统,我遇到了一个小问题。这是破败的;我有两个表,一个名为data,另一个名为zip。如果客户使用烟草,邮政编码和州,则输入他们的性别,年龄。
以下是数据表:
这是拉链表:
我根据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);
答案 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标记中迭代数组。