Habe das Skript etwas umgebaut (hatte es vorher so gehabt)
$counting = 0;
$array_result = array();
if($cat_select != 0)
{
foreach($result_array as $db_key => $result)
{
$datei = "/data/www/pvk/docs/admin/aw/newstool/suche/newsfsuche/".$result->news_nummer.".php";
$result_array[$db_key]->path = $kategorien[$result->category_id]['path'];
$result_array[$db_key]->sort = $kategorien[$result->category_id]['sort'];
if((integer)$result_array[$db_key]->sort == (integer)$cat_select)
{
$counting++;
array_push($array_result, $result_array[$db_key]);
}
}
$anz = $counting;
if($offset >= $anz-$step)
{
$offset = $anz - $step;
$diff = $anz % $diff;
$disabled[next] = TRUE;
}
if (!$offset || $offset<0)
{
$offset = 0;
$disabled[prev] = TRUE;
}
echo "OFFSET = $offset .... DIFF = $diff";
for($i = $offset; $i <= $diff; $i++)
{
echo "<tr><td valign="top" width="60" style="font-size:11px;font_weight:bold;background-color:#FFFFFF"><b>" .$array_result[$i]->date_german. "</b></td>";
echo "<td valign="top" width="500" style="font-size:11px;lighter:lighter;background-color:#FFFFFF;color:#000000;vertical-align:middle;height:18px;">" .$array_result[$i]->path. "</td></tr>";
echo "<tr><td></td><td valign="top" style="font-size:11px;background-color:#FFFFFF;color:#000000;"><a href="http://" .$server. "/admin/aw/newstool/suche/newsfsuche/" .basename($datei). "" target="_new">" .$array_result[$i]->titel. "</a></td>";
echo "<tr><td colspan="3"><hr color="#000000" size="1"></td></tr>";
}
if ($disabled[prev]!==TRUE) echo '<a href="'.$PHP_SELF.'?offset='.($offset-$step).'&cat_select='.$cat_select.'">Vorherige Seite << </a>';
for ($i=1;$i<=($anz/$step);$i++) echo '<a href="'.$PHP_SELF.'?offset='.($i*$step).'&cat_select='.$cat_select.'"> '.$i.'</a>';
if ($disabled[next]!==TRUE) echo '<a href="'.$PHP_SELF.'?offset='.($offset+$step).'&cat_select='.$cat_select.'"> >> Nächste Seite</a>';
echo "gezaehlt wurden $counting!";
}
else
{
foreach($result_array as $db_key => $result)
{
$datei = "/data/www/newsfsuche/".$result->news_nummer.".php";
$result_array[$db_key]->path = $kategorien[$result->category_id]['path'];
$result_array[$db_key]->sort = $kategorien[$result->category_id]['sort'];
if($cat_select == 0 || !isset($cat_select))
{
$counting++;
array_push($array_result, $result_array[$db_key]);
}
}
for($i = 0; $i < $counting; $i++)
{
echo "<tr><td valign="top" width="60" style="font-size:11px;font_weight:bold;background-color:#FFFFFF"><b>" .$array_result[$i]->date_german. "</b></td>";
echo "<td valign="top" width="500" style="font-size:11px;lighter:lighter;background-color:#FFFFFF;color:#000000;vertical-align:middle;height:18px;">" .$array_result[$i]->path. "</td></tr>";
echo "<tr><td></td><td valign="top" style="font-size:11px;background-color:#FFFFFF;color:#000000;"><a href="http://" .$server. "/admin/aw/newstool/suche/newsfsuche/" .basename($datei). "" target="_new">" .$array_result[$i]->titel. "</a></td>";
echo "<tr><td colspan="3"><hr color="#000000" size="1"></td></tr>";
}
echo "gezaehlt wurden $counting!";
echo "</table>";
}
?>
Wenn ich nun bspw. die Kategorie 1 aufrufe (kategorie 0 ist Alle Anzeigen), zeigt er mir richtiger Weise die ersten 10 Einträge (Kategorie 1 hat 27) an. Der Offset ist 0 und DIFF = 10. Dies sollte dann die erste Seite sein. Allerdings sehe ich wenn ich mir den Link der 1. Seite anzeigen lasse die Parameter Offset = 10&cat_select=1 .
Dies sollte aber den Offset 0 anzeigen. Der Link zur 2. Seite zeigt Offset=20&cat_select=1 . Wenn ich diesen anklicke, erhalte ich aus dem debugging OFFSET = 17 DIFF = 7 .
Mir ist nicht ganz klar was ich da falsch mache.
Grüße
Tolwin