Ich versuche, Daten aus 2 verschiedenen SQL-Tabellen (normalisierte Datenbank) anzuzeigen und die Daten nebeneinander in einer HTML-Tabelle anzuzeigen.Kann ich 2 mysql_fetch_array() innerhalb einer while-Schleife haben? [PHP]
Ich kann die Daten aus Tabelle A und aus Tabelle B anzeigen, jedoch erreiche ich dies aus zwei separaten While-Schleifen. Ich möchte diese while-loops zu einem kombinieren.
Frage: Kann ich 2 mysql_fetch_array() Bedingungen innerhalb einer while-Schleife haben?
Anzeigen von Daten aus der Tabelle A:
$result = mysql_query("SELECT * from ReportValues WHERE
ReportValues.ReportID = '$Report_Values'");
while ($myData = mysql_fetch_array($result, MYSQL_NUM))
{
echo "<tr>";
echo "<td>" . $myData[2] . "</td>";
echo "</tr>";
}
Anzeigen von Daten aus der Tabelle B:
$result = mysql_query("SELECT * FROM Element WHERE Element.ElementsID
= (SELECT ElementsID FROM Template WHERE Template.TID = '$Temp')");
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
echo "<td>" . $row[2] . "</td>";
echo "</tr>";
}
Idealerweise versuche ich, so etwas zu erreichen:
$result = mysql_query("SELECT * from ReportValues
WHERE ReportValues.ReportID = '$Report_Values'");
$result2 = mysql_query("SELECT * FROM Element
WHERE Element.ElementsID =
(SELECT ElementsID FROM Template
WHERE Template.TID = '$Temp'
)"
);
while ($myData = mysql_fetch_array($result, MYSQL_NUM) &&
$row = mysql_fetch_array($result2, MYSQL_NUM))
{
echo "<tr>";
echo "<td>" . $myData[2] . "</td>";
echo "<td>" . $row[2] . "</td>";
echo "</tr>";
}
Vielen Dank im Voraus .
EDIT: Vielen Dank für alle Antworten, aber ich konnte nicht implementieren, was vorgeschlagen wurde. Meine Arbeit umfasste das Erstellen von Arrays und für jedes Element (Daten [$ i] und Zeile [$ i]) habe ich sie einfach in 2 separate Arrays eingefügt. Ich habe immer noch zwei separate While-Loops benutzt. Wahrscheinlich ineffizienter/schlechter Code, aber ich habe es funktioniert, ha.
Haben Sie getestet? –
Hmmm, ich weiß nicht, hat es für dich funktioniert? – Ray
Sie können ja, aber wenn in jeder Abfrage eine andere Anzahl von Zeilen zurückgegeben wird, stoppt die Schleife, wenn keine Ergebnisse mehr in der Zeile mit weniger Zeilen vorhanden sind. – AbraCadaver