kostenloser Webspace werbefrei: lima-city


Inhalt eines Arrays auf mehrere Seiten aufteilen.

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    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.
  4. mir ist noch nicht ganz klar was DU mit Seiten meinst.
    Links?teilbereiche der Seite? Tatsächliche Seiten die alle gleichzeitig aufpoppen?
  5. Autor dieses Themas

    christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    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.
  6. sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    Naja? Hab ich doch beschrieben wie man das machen kann oder hab ich irgendwas nicht verstanden? :confused:
  7. Autor dieses Themas

    christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    Weiß ich noch nicht XD Ich verstehe dich nicht XD SRY

  8. $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.
  9. sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    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 ...
  10. $punkteJeSeite = 10;
    for($i=0;$i<=$punkteJeSeite-1;$i++){
    	echo $pages[($_GET['seite'] * $punkteJeSeite) + $i];
    	}
    Müsste funktionieren....

    Beitrag zuletzt geändert: 19.7.2010 18:44:12 von nerdinator
  11. 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:
    <?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");
    
    ?>
    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.

    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
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!