Lassen Sie mich ein wenig Hintergrundgeschichte zu erklären, kann ein Lehrer einen Schüler anwesend oder abwesend setzen. Die Werte dieser Schüler werden in eine Datenbank eingegeben, diese Abfrage wählt den Klassencode aus und berechnet den Prozentsatz der Schüler, die in einer bestimmten Lektion anwesend sind, aber ich bleibe irgendwie dabei, was zu tun ist, die Datei muss in JSON und konvertiert werden In einen ChartJS-Balkendiagramm einfügen, aber aus irgendeinem Grund kann ich diesen Code einfach nicht verstehen, jeder Prozentsatz muss für jede Klasse berechnet werden, so dass ich IN oder etwas ähnliches nicht verwenden kann, das die Anwesenheit der gesamten Lektion berechnen würde anstatt der Klasse pro Lektion (dafür steht der klas.code = '$ klas') weiß jemand, wie ich 1 Ergebnis bekommen kann, aber trotzdem in der Lage bin, den Prozentsatz für jede Klasse einzeln zu berechnen?Foreach-Schleife in MySQL-Abfrage
Vielen Dank.
$klassen = array("WFHBOICT.V1E", "WFHBOICT.V1F");
foreach($klassen as $klas){
//query to get data from the table
$query = ("SELECT klas.code klas, ROUND(
(
SELECT Count(aanwezigheid)
FROM aanwezigheid
JOIN college ON aanwezigheid.Ccode = college.code
JOIN klas ON college.Kcode = klas.code
WHERE klas.code = '".$klas."' AND vak.code = 'WFHBOICT.M032.16' AND college.college = '8'
AND aanwezigheid = '1'
)
/
(
SELECT Count(aanwezigheid)
FROM aanwezigheid
JOIN college ON aanwezigheid.Ccode = college.code
JOIN klas ON college.Kcode = klas.code
WHERE klas.code = '".$klas."' AND vak.code = 'WFHBOICT.M032.16' AND college.college = '8'
)
* 100)
as percentage
FROM aanwezigheid
JOIN college ON aanwezigheid.Ccode = college.code
JOIN klas ON college.Kcode = klas.code
JOIN vak ON college.Vcode = vak.code
WHERE klas.code = '".$klas."' AND vak.code = 'WFHBOICT.M032.16' AND college.college = '8'
GROUP BY klas.code");
//execute query
$result = $mysqli->query($query);
//loop through the returned data
$data = array();
foreach ($result as $row) {
$data[] = $row;
}
print json_encode($data);
Dies ist das Ergebnis:
[{"klas":"WFHBOICT.V1F","percentage":"67"}]
hat es beiden Klassen zwischen den Klammern anstelle von nur 1 ...
Siehe https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-very-simple- SQL-Abfrage – Strawberry