如何解决无法将多个查询数据打印到单个html表PHP,Mysql数组中?
| 我从此站点获得了代码段,如下所示使用 $data = array();
while($row = MysqL_fetch_assoc($num1)) {$data[\'row\'][] = $row;}
while($row = MysqL_fetch_assoc($num2)) {$data[\'row2\'][] = $row;}
$count = count($data[\'row\']);
echo \"<table>\" ;
echo \"<tr>\";
echo \"<td width=\'300\' bgcolor=\'#99CCF5\' align=\'Left\' style=\'padding-left:30px\'><b>Country</b></td>\" ;
echo \"<td width=\'150\' bgcolor=\'#99CCF5\' align=\'center\'><b>Mid Estimate 1</b></td>\";
echo \"<td width=\'150\' bgcolor=\'#99CCF5\' align=\'center\'><b>Mid Estimate 2</b></td>\";
echo \"</tr>\";
for($i=0;$i<=$count;$i++)
{
if(($i % 2) == 1)
{
echo \"<tr>\" ;
echo \"<td align=\'center\'>\" . $data[\'row\'][$i][\'Country\'].\"</td>\";
echo \"<td align=\'center\'>\" . $data[\'row\'][$i][\'MidEstimate\'].\"</td>\";
echo \"<td align=\'center\'>\" . $data[\'row2\'][$i][\'MidEstimate\'].\"</td>\";
echo \"</tr>\" ;
}else
{
echo \"<tr>\" ;
echo \"<td align=\'center\'>\" . $data[\'row\'][$i][\'Country\'] .\"</td>\";
echo \"<td align=\'center\'>\" . $data[\'row\'][$i][\'MidEstimate\'].\"</td>\";
echo \"<td align=\'center\'>\" . $data[\'row2\'][$i][\'MidEstimate\'].\"</td>\";
echo \"</tr>\" ;
}
}
echo \"</table>\" ;
结果如下
图片1 http://img4.pixa.us/8ba/19338641.jpg
正确的结果应该是这样的
图片2 http://img4.pixa.us/c1d/19338642.jpg
也就是说,如果列中的任何值为空,则下一个相邻值将获得该位置。我该如何纠正?也就是说,如果任何值为空,则该列必须为空。
请帮助并提前致谢。
解决方法
您必须收集每个国家的数据。由于阵列的键不同步,因此您在问题中使用的方法会使列表混乱。让我们按“国家/地区”同步您的行:
$data = array();
while($row = mysql_fetch_assoc($num1))
{
$c = $row[\'Country\'];
if (!isset($data[$c]))
{
$data[$c] = array(\'Country\' => $c);
}
$data[$c][\'MidEstimate1\'] = $row[\'MidEstimate\'];
}
while($row = mysql_fetch_assoc($num2))
{
$c = $row[\'Country\'];
if (!isset($data[$c]))
{
$data[$c] = array(\'Country\' => $c);
}
$data[$c][\'MidEstimate2\'] = $row[\'MidEstimate\'];
}
现在,您在每个国家/地区的数组中都有一行,其中包含每个查询的数据。
$i = 0;
foreach ($data as $row)
{
echo ($i % 2) ? \"<tr class=\'odd\'>\" : \"<tr class=\'even\'>\" ;
echo \"<td align=\'center\'>\" . $row[\'Country\'].\"</td>\";
echo \"<td align=\'center\'>\" . $row[\'MidEstimate1\'].\"</td>\";
echo \"<td align=\'center\'>\" . $row[\'MidEstimate2\'].\"</td>\";
echo \"</tr>\" ;
}
注意:这仅适用于两个SQL查询中都存在的“国家/地区”字段。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。