我正在为我们公司创建一个报价系统,我遇到了一个小问题.这是破败的; 我有两个表,一个名为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');
Run Code Online (Sandbox Code Playgroud)
现在我想要做的是在表格中输出这个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);
Run Code Online (Sandbox Code Playgroud)
也在 SQL 查询中检索计划
SELECT data.Monthly_Rate, data.Plan ...
Run Code Online (Sandbox Code Playgroud)
然后使用下面的代码
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>";
Run Code Online (Sandbox Code Playgroud)
不过,您不应该以这种方式混合数据处理逻辑和演示文稿。您应该使用一个函数来运行查询并将数据作为数组返回。然后迭代 html 标记中的数组。