Ich erstellte eine Schnittstelle, in der der Benutzer wählen kann, welche Ergebnisse angezeigt werden. Die vom Benutzer ausgewählten Optionen werden in einem Array gespeichert, sodass die MySQL-Abfrage die verschiedenen Elemente dieses Arrays durchläuft.Anzeigen von MySQL-Ergebnissen in einer einzigen Tabelle
Deshalb möchte ich die Ergebnisse in einer Tabelle anzuzeigen ... etwas wie folgt aus:
Header 1 | Header 2
Ergebnis 1-1 | Ergebnis 1-2
Ergebnis 2-1 | Ergebnis 2-2
Und mein Code ist folgende:
$mark = $_POST['mark'];
if (isset($_POST['mark']) && is_array($_POST['mark'])) {
echo "<table border='1'>";
echo "<tr>";
for ($i = 0; $i < count($mark); $i++) {
echo "<th>" . $mark[$i] . "</th>";
}
echo "</tr>";
for ($i = 0; $i < count($mark); $i++) {
$markQuery = "SELECT $mark[$i] FROM marks LIMIT 10";
$result = mysqli_query($DB_connection, $markQuery);
echo "<tr>";
while($row= mysqli_fetch_assoc($result)){
echo "<td>" . $row[$mark[$i]] . "</td>";
}
echo "</tr>";
}
echo "</table>";
}
Ich bin mir nicht sicher, ob die zweite Schleife ist eine gute Idee, aber ich weiß nicht, was soll ich tun, Ergebnisse anzuzeigen wie ich will.
Ich weiß, dass dies nicht die Antwort auf Ihre Frage, aber der Code ist anfällig für SQL-Injection, wie Sie unvalidated Eingabe in eine SQL-Anweisung setzen und es ist anfällig für XSS-Angriffe, weil Sie Ausgabe unvalidated Benutzereingaben HTML dem könnte verwendet werden, um Javascript-Code in die Zielwebseite zu schreiben. – eX0du5
Sie sollten die Datenbank nicht jedes Mal abfragen, da dies nicht effizient ist. Stattdessen würde ich eine neue Spalte namens "type" hinzufügen, alle Datensätze aus der Tabelle holen und sie dann mit php nach der neuen Spalte filtern. – czeski