我正在为我们公司创建一个报价系统,但遇到了一个小问题。这是纲要;我有两个表,一个名为数据,另一个名为 zipper 。客户输入他们的性别、年龄、是否使用烟草、邮政编码和州。
这是数据表:
这是 zips 表:
我已根据邮政编码查找要连接的两个表。这是我正在使用的查询:
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);
最佳答案
在您的 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 标记中的数组。
关于php - 在 PHP 中输出 Mysql 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12748499/