Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mehrere Abfragedaten in einem einzelnen HTML-Tabellen-Array (PHP, Mysql) werden nicht an der richtigen Position gedruckt?

Sie müssen die Daten für jedes Land sammeln. Ihr Ansatz in der Frage bringt die Auflistung durcheinander, da die Schlüssel für das Array nicht synchron sind. Lassen Sie uns Ihre Zeilen nach „Land“ synchronisieren:

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

Jetzt haben Sie in Ihrem Array eine Zeile für jedes Land mit den Daten aus jeder Abfrage.

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

Hinweis:Dies funktioniert nur, wenn das Feld „Land“ in beiden SQL-Abfragen vorhanden ist.