und wenn Du die Abfrage auf eine Altersgruppe machst, die Mitglieder enthält, erhälst Du dann mit dieser Ausgabe die Anzahl der Mitglieder oder auch 0?
Ansonsten müsstest Du bitte nochmal den Ausschnitt Deines Quelltextes an dieser Stelle posten.
$sql ="SELECT usr_id, row1id1.usd_value, row4id2.usd_value, row7id10.usd_value, row10id11.usd_value, rol_id
FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. ", ". TBL_MEMBERS. ", ". TBL_USERS. "
LEFT JOIN adm_user_data row1id1 ON row1id1.usd_usr_id = usr_id
AND row1id1.usd_usf_id = 1
LEFT JOIN adm_user_data row4id2 ON row4id2.usd_usr_id = usr_id
AND row4id2.usd_usf_id = 2
LEFT JOIN adm_user_data row7id10 ON row7id10.usd_usr_id = usr_id
AND row7id10.usd_usf_id = 10
LEFT JOIN adm_user_data row10id11 ON row10id11.usd_usr_id = usr_id
AND row10id11.usd_usf_id = 11
JOIN adm_user_data row10id20 ON row10id20.usd_usr_id = usr_id
AND row10id20.usd_usf_id = 20
AND str_to_date(row10id20.usd_value, '%Y-%m-%d') < date_add(sysdate(), interval -60 year)
AND str_to_date(row10id20.usd_value, '%Y-%m-%d') > date_add(sysdate(), interval -64 year)
WHERE rol_id = 2
AND rol_valid = 1
AND rol_cat_id = cat_id
AND cat_org_id = 1
AND mem_rol_id = rol_id
AND mem_valid = 1
AND mem_usr_id = usr_id
AND usr_valid = 1
ORDER BY row1id1.usd_value ASC";
$jahr = date("Y");
echo "<u><font size=\"+1\" color = \"red\">Im Jahr $jahr seit mind. 60 Jahren im Verein</font></u><br><br>";
echo "Anzahl: ". $num_rows;
while($row = $g_db->fetch_array($result))
{
//Kleine erkl峵ng
//Hier wird ein Userobjekt erzeugt welches alle Informationen �� den User hat
$user = new User($g_db, $row['usr_id']);
//Jetzt wird z.B. das Eintrittsdatum abgefragt
$intra_day = $user->getValue("Mitglied seit");//Hier deinen Feldnamen eintragen
if($num_rows == 0)
{
echo "<b>Keine Mitglieder vorhanden.</b>";
}
Du hast die Abfrage auf die Anzahl in die while-Schleife mit reingenommen, die aber nicht durchlaufen wird, wenn die Anzahl 0 ist.
Ändere den Quelltext für die While-Schleife daher so ab:
if($num_rows == 0)
{
echo "<b>Keine Mitglieder vorhanden.</b>";
}
else
{
while($row = $g_db->fetch_array($result))
{
//Kleine erklärung
//Hier wird ein Userobjekt erzeugt welches alle Informationen über den User hat
$user = new User($g_db, $row['usr_id']);
//Jetzt wird z.B. das Eintrittsdatum abgefragt
$intra_day = $user->getValue("Mitglied seit");//Hier deinen Feldnamen eintragen
if(more_than_years(15, $intra_day))
{
echo "<b>".$user->getValue("Nachname")."</b>, <b>".$user->getValue("Vorname")."</b> seit " .date('d.m.Y', strtotime($intra_day)) ;
echo "<br>";
}
}
}
Damit wird zunächst auf die Ergebnisanzahl abgefragt. Ich hatte das allerdings auch so schonmal innerhalb dieses Threads geschrieben. Das ist wohl irgendwo in Deinem Quelltext verloren gegangen...
$sql ="SELECT usr_id, row1id1.usd_value, row4id2.usd_value, row7id10.usd_value, row10id11.usd_value, rol_id
FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. ", ". TBL_MEMBERS. ", ". TBL_USERS. "
LEFT JOIN adm_user_data row1id1 ON row1id1.usd_usr_id = usr_id
AND row1id1.usd_usf_id = 1
LEFT JOIN adm_user_data row4id2 ON row4id2.usd_usr_id = usr_id
AND row4id2.usd_usf_id = 2
LEFT JOIN adm_user_data row7id10 ON row7id10.usd_usr_id = usr_id
AND row7id10.usd_usf_id = 10
LEFT JOIN adm_user_data row10id11 ON row10id11.usd_usr_id = usr_id
AND row10id11.usd_usf_id = 11
JOIN adm_user_data row10id20 ON row10id20.usd_usr_id = usr_id
AND row10id20.usd_usf_id = 20
AND str_to_date(row10id20.usd_value, '%Y-%m-%d') < date_add(sysdate(), interval -60 year)
AND str_to_date(row10id20.usd_value, '%Y-%m-%d') > date_add(sysdate(), interval -64 year)
WHERE rol_id = 2
AND rol_valid = 1
AND rol_cat_id = cat_id
AND cat_org_id = 1
AND mem_rol_id = rol_id
AND mem_valid = 1
AND mem_usr_id = usr_id
AND usr_valid = 1
ORDER BY row1id1.usd_value ASC";
$jahr = date("Y");
echo "<u><font size=\"+1\" color = \"red\">Im Jahr $jahr seit mind. 60 Jahren im Verein</font></u><br><br>";
echo "Anzahl: ". $num_rows;
if($num_rows == 0)
{
echo "<b>Keine Mitglieder vorhanden.</b>";
}
else
{
while($row = $g_db->fetch_array($result))
{
//Kleine erkl峵ng
//Hier wird ein Userobjekt erzeugt welches alle Informationen �� den User hat
$user = new User($g_db, $row['usr_id']);
//Jetzt wird z.B. das Eintrittsdatum abgefragt
$intra_day = $user->getValue("Mitglied seit");//Hier deinen Feldnamen eintragen
Du hast meinen Code nicht komplett kopiert. Da fehlt ein "}" hinter der While-Schleife (geht mit der "else" Anweisung auf und wurde nicht geschlossen):
ich war ja so zufrieden mit meinen Statistiken - bis ich heute morgen das Update auf 2.1.5 installiert habe. Das war es dann gewesen mit meinen schönen Statistiken. Ich erhalte jetzt nur noch folgende Meldung:
Im Jahr 2009 zu Ehren
S Q L - E R R O R
CODE: 1054
Unknown column 'mem_valid' in 'where clause'
Was ist da in der DB geändert? Oder anders: Was muss ich da jetzt wieder ändern?
Übrigens funktioniert auch das Birthdaymodul 1.5.0 nicht. Ich erhalte nur die Meldung, dass X Personen Geburtstag haben, egal was ich in der Config einstelle!
Jetzt schon mal vielen Dank für die Hilfe und den Streß den ich jetzt wahrscheinlich mal wieder auslöse.