Ich habe ein Auswahlmenü, das eine Option enthält, wie die Daten aus meiner Datenbank sortiert werden. Ich bleibe dran, wie ich es nach Datum und Prüfung sortieren werde.MySQL-Daten über ein Auswahlmenü sortieren
Dies ist mein Code so weit:
echo "<form action=results.php method=post>";
echo "Sort By: <select name=q><option value= name=></option><option value=date name=date>Date</option><option value=exam name=exam>Exam</option></select>";
echo "</form>";
if()
$q = $_GET['q'];
echo "<table border=1 align=center><tr class=style2><td>Date <td>Student Name <td> Subject <td> Score";
$sortQuery = mysql_query("SELECT * FROM mst_adminresult m
JOIN mst_test t ON t.test_id = m.test_id
JOIN mst_subject s ON s.sub_id = t.sub_id order by'".$q."'" ,$cn) or die(mysql_error());
while($row=mysql_fetch_row($sortQuery))
{
echo "<tr class=style8><td>$row[5]<td>$row[1] <td align=center> $row[4] <td align=center> $row[3]/20";
}
echo "</table>";
Die Felder in der ORDER BY-Klausel sollten in Backticks anstelle von einfachen Anführungszeichen eingeschlossen werden, besonders da Sie das reservierte Wort "date" verwenden. Aber tbh, wenn Sie so programmieren, haben Sie viel größere Probleme als nur ein paar fehlende Backticks. Ich hoffe, es ist nur Ihr Beispielcode ... Sie überprüfen nicht einmal, ob '$ _GET ['q']' gesetzt ist oder nicht – Kirito
ich weiß, ich muss 'isset()' es aber das ist das Problem, das ich habe ... ich kenne den richtigen Weg nicht. Ich bin fest mit 'if (isset ($ _ GET ['q']) ==" examdate ") es sollte sein, wenn der Wert ist gleich examdate, wird es nach Datum sortiert, @Kirito – Jennifer
Sie können nicht evaluate 'if (isset ($ _ GET ['q']) ==" examdate ")', nun ja, du kannst das, aber du erhältst unerwartete Ergebnisse. 'isset' gibt nur wahr oder falsch zurück, also benutze:' if (isset ($ _ GET ['q'])) {$ q = $ _GET ['q']; } else {$ q = "Datum"; } 'was bedeutet, dass' date' der Standardwert ist, falls '$ _GET [' q '] 'nicht gesetzt ist, oder Sie können es in' $ q = "examen" ändern; ', es liegt an Ihnen. – Kirito