Hallo Forum,
ich habe ein Problem mit einer Blätterfunktion durch ein Array.
Da ich die Daten aus einer Datenbank ziehen muss und im Anschluss
mit Daten aus einem Flatfile verbinde, ist der Einsatz von LIMIT
nicht möglich. Die verquickten Daten werden dann in diesem Array
vorgehalten. Es handelt sich um News die zu unterschiedlichen Kategorien zugeordnet sind. Mit einem Dropdown habe ich die Auswahl zwischen bspw. Alle News anzeigen - dis gibt einfach das komplette Array nach Datum sortiert aus. Wenn ich nun aber eine spezielle Kategorie auswähle, sollen nur news dieser angezeigt werden. Hierzu
erstelle ich ein weiteres Array mit den der Kategorie entsprechenden Inhalten welches ich im Anschluss ausgeben lasse.
Meine Idee war nun anhand des Array Indexes und einem Start und Stop-Wert für die Blätterfunktion einen Seitenindex zu generieren. Nach dem Blättern gelange ich aber immer wieder auf die Ausgangsposition "Alle Anzeigen" da die Kategorie verloren geht. Was hierzu sicher beiträgt ist das Problem dass ich mit PHPSELF arbeite und hierzu $_POST verwenden muss, der Seitenindex aber aus dynamisch generierten Links besteht und $_GET benötigt. Wie kann ich es schaffen zu jeder Kategorie den passenden Seiten-Index zu erhalten?
Per Google habe ich schon ein paar Ideen finden , aber nicht sinnvoll verweden können. So sieht der wesentliche Teil meines Quellcodes aus (exklusive HTML-Part)
$counting = 0;
$array_result = array();
if($cat_select != 0)
{
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((integer)$result_array[$db_key]->sort == (integer)$cat_select)
{
$counting++;
array_push($array_result, $result_array[$db_key]);
}
}
$anz = $counting;
if($offset + 1 >= $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>";
}
echo "gezaehlt wurden $counting!";
}
else
{
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($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!";
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>';
Bin für jeden Hinweis dankbar, da ich unter Zeitdruck stehe....
Vielen Dank und Gruß
Tolwin