Mysql
 sql >> Base de données >  >> RDS >> Mysql

Plusieurs données de requête dans un seul tableau HTML (PHP, Mysql) ne s'impriment pas dans la bonne position ?

Vous devez rassembler les données pour chaque pays. Votre approche dans la question gâche la liste puisque les clés du tableau ne sont pas synchronisées. Synchronisons vos lignes par 'Pays' :

$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'];
}

Vous avez maintenant une ligne dans votre tableau pour chaque pays, avec leurs données de chaque requête.

$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>" ;
}

Remarque :cela ne fonctionne que si le champ 'Pays' est présent dans les deux requêtes SQL.