Mysql
 sql >> Database >  >> RDS >> Mysql

Più dati di query in un singolo array di tabelle html (PHP, Mysql) non vengono stampati nella posizione corretta?

Devi raccogliere i dati per ogni paese. Il tuo approccio nella domanda incasina l'elenco poiché le chiavi per l'array non sono sincronizzate. Sincronizziamo le righe per "Paese":

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

Ora hai una riga nell'array per ogni Paese, con i dati di ciascuna query.

$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:funziona solo nel campo 'Paese' è presente in entrambe le query SQL.