Hallo an alle Profis.
Ich habe eine Tabelle erstellt mit den Feldern DATUM, TEXT, ZAHL. Die Ausgabe soll derart erfolgen, dass zunächst pro Jahr die Anzahl der Datensätze und die Gesamtzahl gezeigt wird, danach die dazugehörenden einzelnen Datensätze. In einer Endlostabelle konnte ich das Problem lösen. Wenn ich aber pro Seite nur eine bestimmte Anzahl von Datensätzen anzeigen möchte (Limit $start, MAX_EINTRAEGE) passt mein "logisches" Konzept nicht. Kann mir wer weiterhelfen? Im folgenden der Code:
echo"<table><tr>
<td>Datum</td>
<td>TEXT</td>
<td>ZAHL></td>
</tr>";
//Eintraege pro Seite:
define("MAX_EINTRAEGE",5);
// Die Berechnung erfolgt nur für ungerade Zahlen!!!
define("NAV_LEISTE",5);
// Die aktuell angeforderte Seite
$seiteAktuell = $_GET['site'] + 0;
// Falls noch keine Seitenzahl eingegeben wurde, den Wert auf die erste Seite setzen
if(empty($seiteAktuell))
$seiteAktuell = 1;
// Berechnet die naechsten Eintraege aus MAX_EINTRAEGE
$start = $seiteAktuell * MAX_EINTRAEGE - MAX_EINTRAEGE;
// Tabelle "Beispiel" mit den Feldern "Datum, Text, Zahl"
$hpt = "SELECT DISTINCT(year(datum)) FROM Beispiel ORDER BY datum ASC";
if ($res=send_sql($db,$hpt)) {
$AnzH = mysql_num_rows ($res);
}
for ($a=0; $a<$AnzH; $a++) {
$succ=mysql_data_seek ($res, $a);
$arrh=mysql_fetch_array($res, MYSQL_NUM);
list($Jahr) =$arrh;
}
// Holt die aktuellen Datensaetze aus - define("MAX_EINTRAEGE",15)
$det = "SELECT * FROM Beispiel ORDER BY datum DESC LIMIT $start, ".MAX_EINTRAEGE;
if ($resD=send_sql($db,$det)){
$AnzD = mysql_num_rows ($resD);
}
//Gesamtzahl der Datensätze
$resultGesamt = @mysql_query("SELECT COUNT(*) AS menge FROM Beispiel");
$Eintraege = @mysql_result($resultGesamt,0,"menge");
for ($j=0; $j<$AnzD; $j++) {
$sucd=mysql_data_seek ($resD, $j);
$arrd=mysql_fetch_array($resD, MYSQL_NUM);
list($eID, $datum, $text, $zahl) =$arrd;
$d= explode("-", $datum);
$datum = $d[2].".".$d[1].".".$d[0];
$nJahr = $d[0];
if ($Jahr == $nJahr) {
$sql = "SELECT * FROM Beispiel WHERE year(datum) = $Jahr";
$res = send_sql($db,$sql);
$AnzJahr = mysql_num_rows ($res);
for ($z=0; $z<$AnzJahr; $z++) {
$suc=mysql_data_seek ($res, $z);
$arr=mysql_fetch_array($res, MYSQL_NUM);
list($eID1, $datum1, $text1, $zahl1)=$arr;
$zahlAll = $zahlAll + $zahl1;
}
echo"<tr>
<td><b>",$Jahr,"</b></td>
<td>Anzahl: ",$AnzJahr," - Gesamtzahl: ",$zahlAll,"</td>
</tr>";
$Jahr = $Jahr - 1;
$zahlAll = 0;
}
echo"<tr>
<td>",$datum,"</td>
<td>",$bewerb,"</td>
<td>",$bewerb,"</td>
</tr>";
}
echo"</table>";
Vielen Dank.
LG
Läufer