Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Vários dados de consulta em uma única tabela html (PHP, Mysql) não são impressas na posição correta?


Você tem que coletar os dados para cada país. Sua abordagem na pergunta atrapalha a listagem, pois as chaves da matriz não estão sincronizadas. Vamos sincronizar suas linhas por 'País':
$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'];
}

Agora você tem uma linha em sua matriz para cada país, com seus dados de cada consulta.
$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>" ;
}

Nota:isso só funciona no campo 'País' está presente em ambas as consultas SQL.