Inhalt eines Arrays auf mehrere Seiten aufteilen.
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzahl
array
aufruf
ausgabe
ausgeben
beispiel
code
datum
forum
limit
links teilbereiche
machen
menge
nummer
page
prinzip
re
seitenzahl
show
zahl
-
Hallo LC,
Ich will eine ref="/tag/array">Array auf mehren Seiten ausgeben. Es gibt mir die Seiten aus. Das funktioniert soweit auch. Aber es können unter Umständen viele Seiten werden. Nun will ich das er mit immer nur 10 Seiten unten anzeigt.
if ($aktuelle Seite > 5){
zeige alle Seitenlinks im Rahmen $aktuelle Seite -5 und $aktuelle Seite +5
}else{
zeige alle Seitenlinks von 0 bis 10
}
hier mein bisheriger script:
// $seite = aktuelle seite // $wieviel_seiten = anzahl der benötigten seiten //$limit = anzahl der ausgeben //$menge = anzahl der eintäge $wieviel_seiten = $menge / $limit; //Ausgabe der Seitenlinks: echo "<div align=\"center\">"; echo "<b>Seite:</b> "; for($a=0; $a <= $wieviel_seiten; $a++) { $b = $a + 1; if($seite == $b) { echo " <b>$b</b> "; } else { if($b <1){ $b=1; } echo " <a href=\"?seite=$b\">$b</a> "; } } echo "</div>";
Das ganze soll so sein wie beim LC Forum.
Könnr ihr mir Helfen? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Machste einfach eine get-Variablen-Übergabe als Zahl und läßt dann von dieser Zahl aus so viele Einträge ausgeben wie Du vorhast anzeigen zu lassen.
Schemahaftes Beispiel
i = getvariable * 10
while (i < ((getvariable + 1) * 10))
[
blabla
i++;
]
Wenn die 1 übergeben wird macht er so von 10 bis 20, wenn Du eine 2 übergibst von 20 bis 30 usw usf.
Das müßte aber sicherlich noch ausgeweitet werden, vom Prinzip her würde ich es aber so machen. -
mir ist noch nicht ganz klar was DU mit Seiten meinst.
Links?teilbereiche der Seite? Tatsächliche Seiten die alle gleichzeitig aufpoppen? -
simuliertes schrieb: mir ist noch nicht ganz klar was DU mit Seiten meinst.
´
Links?teilbereiche der Seite? Tatsächliche Seiten die alle gleichzeitig aufpoppen?
Wenn bei Lima-city ein Forum 80 Seiten hat und ich die erste aufrufe steht da 1 bis 10 und nicht 1 bis 80 wie bei mir und wenn ich auf seite 70 gehe kommt 65 bis 75. Das will ich auch haben. -
Naja? Hab ich doch beschrieben wie man das machen kann oder hab ich irgendwas nicht verstanden?
-
Weiß ich noch nicht XD Ich verstehe dich nicht XD SRY
-
$apge = $currentPage - 5 ?: 0; // Wenn du kein PHP 5.3 hast, dann $currentPage - 5 ? $currentPage - 5 : 0 $to = $currentPage + 5 <= $numofPages ? $currentPage + 5 : $numofPages; for (; $page < $to; ++$page) { }
Sollte gehen, ist aber ungetestet. -
Na, hast ein Array mit 80 Einträgen, Nummer 40-50 sollen angezeigt werden.
Also übergibst Du per get eine 4, multiplizierst 10 drauf und hast den Startwert. Der Endwert ist in dem Beispiel die 50, also die der Wert 4 vom Get-Dingens + 1 mit 10 multipliziert. Jetzt machst Du nur noch eine whileschleife von get-Wert * 10 bis (get-Wert + 1) * 10.
Das ganze läst Du ausgeben, bastelst noch ein paar Seitenzahlen dazu und fertig ist. Fürs Grobe sollte das doch maximal 10 minuten dauern ... -
Müsste funktionieren....$punkteJeSeite = 10; for($i=0;$i<=$punkteJeSeite-1;$i++){ echo $pages[($_GET['seite'] * $punkteJeSeite) + $i]; }
Beitrag zuletzt geändert: 19.7.2010 18:44:12 von nerdinator -
christian1603
Ich will eine Array auf mehren Seiten ausgeben.
auf dein pm: leider gestern in der nacht ist etwas später geworden, daher heute in der früh (hoffentlich nicht zu spät).
also eine der lösungen sieht im prinzip so aus:
solche dinge gibt es etliche unterschiedliche! wenn du genauer sagst woher die daten kommen und wie genau die ausgabe passieren soll, gibt es möglicher weise bessere lösungen auch.<?php # test array: $content = array (1,2,3,4,5,6,7,8,9,0, 11,22,33,44,55,66,77,88,99,0, 111,222,333,444,555,666,777,888,999,0); # amount of sites: $sites = 7; $_get = ""; # ------------------------------------------------------------------------------ # fix input $ptr = ( count ($_GET) > 0 ) ? $_GET['seite']: 0; $anchors = "\n\n<hr /><p>\n"; $res = "<h4>seitenanzahl (zu editieren in zeile 7, var '\$sites') = $sites</h4>\n<p><h3>Array Inhalte:</h3>\n"; for ($i = 0; $i <= count ($content) - 1; $i++) { # show content: if ( floor ($i / $sites) === floor ($ptr / $sites) ) { $res .= "{$content[$i]} "; } # make anchors: if ( fmod ($i, $sites) == 0 ) { $anchors .= "[<a href=\"?seite=$i\">".floor ($i / $sites)."</a>]\n"; } } $res .= "\n</p>\n"; $anchors .= "\n</p>\n"; #$_get = "<pre><strong>\$_GET:</strong>\n".print_r($_GET,true)."</pre>"; # show site: exit ("$res$anchors$_get"); ?>
lg
joseph
==== edit:
ok! kleine schönheitfehler rausgenommen (jetzt ist etwas kürzer auch)
Beitrag zuletzt geändert: 20.7.2010 10:24:44 von czibere -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage