Ich kann mir gut vorstellen, dass es dafür eine Funktion geben könnte.
Ich versuch mal mein Vorhaben etwas genauer zu beschreiben.
Ich habe zwei Tabellen, eine mit Temindaten und eine mit Adressdaten eines Vereins.
in einer Verknüpfungstabelle hab ich zu jeder ID der Termine jede ID der Adressen sowie eine Spalte für den Status (1= Entschuldigt, 2= Anwesend, 3= unentschuldigt). So kann ich eine Anwesenheitskontrolle führen.
nun möchte ich anzeigen wer, wie oft anwesend war.
Jetzt frag ich, in der do-Schleife, mit SELECT COUNT(*) für jedes Mitglied die Anzahl der Datensätze ab wo 2 Steht.
Da ich zudem gerne eine kleine Rangliste erhalten möchte, hätte ich gerne jene Mirglieder mit der meisten präsenzzeit zu oberst und jene mit wenigsten zu unterst.
Wenn die ID der Adressen mit dem Fremdschlüssel in der Verknüpfunktstabelle übereinstimmen, werden die Datensätze gezählt wo 2 in der Spalte adte_status steht.
das ergibt mir dann eine Auflisteung aller Namen und deren anzahl Anwesenheit.
Ich versuch mal mein Vorhaben etwas genauer zu beschreiben.
Ich habe zwei Tabellen, eine mit Temindaten und eine mit Adressdaten eines Vereins.
in einer Verknüpfungstabelle hab ich zu jeder ID der Termine jede ID der Adressen sowie eine Spalte für den Status (1= Entschuldigt, 2= Anwesend, 3= unentschuldigt). So kann ich eine Anwesenheitskontrolle führen.
nun möchte ich anzeigen wer, wie oft anwesend war.
Jetzt frag ich, in der do-Schleife, mit SELECT COUNT(*) für jedes Mitglied die Anzahl der Datensätze ab wo 2 Steht.
Da ich zudem gerne eine kleine Rangliste erhalten möchte, hätte ich gerne jene Mirglieder mit der meisten präsenzzeit zu oberst und jene mit wenigsten zu unterst.
PHP:
<?php do { ?>
<tr>
<td width="279" height="19">
<?php echo $row_mitglieder['ad_nachname']; ?>
<?php echo $row_mitglieder['ad_vorname']; ?>
</td>
<td width="91" height="19"><div align="center">
<?php
$colname_absenzen_anw_anw = "-1";
if (isset($row_mitglieder['ad_ID'])) {
$colname_absenzen_anw_anw = $row_mitglieder['ad_ID'];
}
mysql_select_db($database_PopularisBischofszell, $PopularisBischofszell);
$query_absenzen_anw_anw = sprint
("SELECT COUNT(*)
FROM `pobi_adressen` as `t1` left JOIN `pobi_adrterm` as `t2` ON `t1`.`ad_ID` = `t2`.`adte_IDadr`
WHERE (adte_status = 2)
AND (adte_IDadr = %s)
AND ((ad_austritt = 0 and ad_aufgenommen <> 0)
OR (ad_probejahr <> 0 and ad_aufgenommen = 0 and ad_austritt = 0))
ORDER BY adte_status ASC",
GetSQLValueString($colname_absenzen_anw_anw, "int"));
$absenzen_anw_anw = mysql_query($query_absenzen_anw_anw, $PopularisBischofszell) or die(mysql_error());
$row_absenzen_anw_anw = mysql_fetch_assoc($absenzen_anw_anw);
$totalRows_absenzen_anw_anw = mysql_num_rows($absenzen_anw_anw);
<?php
echo $row_absenzen_anw_anw['COUNT(*)'];
?>
</div></td>
} while ($row_mitglieder = mysql_fetch_assoc($mitglieder))
?>
Wenn die ID der Adressen mit dem Fremdschlüssel in der Verknüpfunktstabelle übereinstimmen, werden die Datensätze gezählt wo 2 in der Spalte adte_status steht.
das ergibt mir dann eine Auflisteung aller Namen und deren anzahl Anwesenheit.