微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法将多个查询数据打印到单个html表PHP,Mysql数组中?

如何解决无法将多个查询数据打印到单个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 举报,一经查实,本站将立刻删除。