kostenloser Webspace werbefrei: lima-city


[PHP] "Blätterfunktion"

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    s***h

    Hey,
    ich hab mal wieder ne Frage :)

    Ich hol mir die Nachrichten aus der Datenbank und zähle sie (= $gesamt).
    Die Variable $pmperpage enthält die Anzahl der Nachrichten/Beiträge, die auf einer Seite dargestellt werden sollen.
    Dann ist $wievielepage die Anzahl der Seiten, die ich habe.

    $pnc_ergebnis = dbquery("SELECT * FROM ".$db_prefix."messages ORDER BY message_id DESC");
    $gesamt =  dbrows($pnc_ergebnis);
    $wievielepages = $gesamt / $pmperpage;
    $wievielepages = ceil($wievielepages);


    Und bis jetzt hab ich dann so weitergemacht:
    function electpage()
    {
    global $wievielepages;
    
    echo "Seiten: ";
    for ($i=1; $i <= $wievielepages; $i++) 
    	{
    echo "<a href=\"blub.php?pn_page=".$i."\">".$i."</a>, ";
    	}
    
    }


    Da kommt dann sowas raus:
    Seite: 1, 2, 3, 4, 5,

    Ich will aber, dass das anders aussieht.
    Nämlich so wie bei Lima-City:
    «, <, 1, 2, 3, 4, 5, 6, 7, 8, >, »
    oder so:
    http://peecee.dk/resize.php?id=34960

    Weiß da wer was? ;)


    Beitrag geaendert: 18.3.2007 18:38:02 von sesch
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Bevor ich dir hier lang und breit etwas erkläre und dir fertigen Code liefere, gebe ich dir einfach folgenden Link als Hilfe.
    http://php-einfach.de/tuts_mysql_blaetterfunktion.php

    Dort steht eigentlich alles erklärt und so wie ich das sehe, solltest du deinen Code nochmal überarbeiten, da du z.B. gar nicht mit LIMIT arbeitest. Du lädst quasi alle Einträge, auch wenn du eigentlich nur z.b. fünf brauchst.
  4. Autor dieses Themas

    s***h

    Naja, den gleichen Code hatte ich ja schon vorher. Was ich suche ist, dass zB:

    Seite 1 von 9: 1, 2, 3, 4, 5, 6, 7, 8, 9,

    zu

    << < 5, 6, 7, 8, 9 > >>

    wird.

    Mein Code sieht zur Zeit so aus:

    function electpage($page, $wievielepages, $section)
    {
    global $wievielepages;
     if ($wievielepages > "1")
     {
    	echo "<br />Seite ".$page." von ".$wievielepages.": ";
    
    	for ($i=1; $i <= $wievielepages; $i++) 
    	{
    		if($page == $i)
    		{ 
    		echo $i.", ";
    		} else {
    		echo "<a href=\"login_admin.php?section=".$section."&page=".$i."\">".$i."</a>, ";
    		}
    	}
    	echo "<br />";
     }
    }


    Beitrag geaendert: 3.4.2007 20:02:40 von sesch


  5. <?php
    
    function electpage($page, $wievielepages, $section)
    {
    global $wievielepages;
     if ($wievielepages > '1')
     {
    	echo '<br />Seite '.$page.' von '.$wievielepages.': ';
    
    //Ich versuche mal, etwas einzubauen:
      if($page - 2 <= 0) 
        $start = 1;
      else
        $start = $page - 2;
    
      if($page + 2 >= $wievielepages)
        $ende = $wievielepages;
      else
        $ende = $page + 2;
    
    //Habs nicht probiert, aber könnte klappen
    
    	for ($i=$start; $i <= $ende; $i++)  //hier noch eine kleine änderung
    	{
    		if($page == $i)
    		{ 
    		echo $i.', ';
    		} else {
    		echo '<a href=\'login_admin.php?section='.$section.'&page='.$i.'\'>'.$i.'</a>, ';
    		}
    	}
    	echo '<br />';
     }
    }



    EDIT: Musst ein Fehler korrigieren



    Beitrag geaendert: 3.4.2007 20:59:49 von nigolaz
  6. ehrlich gesagt ich seh das problem ned.
    Weil ähm ja << is blabla.php?p=1 bzw blabla.php
    < ist: if(isset($_GET['p']) && $_GET['p'] > 1) blabla.php?p='.$_GET['p']-1.'
    > ist: if(isset($_GET['p']) && $_GET['p'] < MAX) blabla.php?p='.$_GET['p']+1.'
    else blabla.php?p=2

    >> ist: blabla.php?p=MAX


    ende

  7. Bevor ich dir hier lang und breit etwas erkläre und dir fertigen Code liefere, gebe ich dir einfach folgenden Link als Hilfe.
    http://php-einfach.de/tuts_mysql_blaetterfunktion.php

    Dort steht eigentlich alles erklärt und so wie ich das sehe, solltest du deinen Code nochmal überarbeiten, da du z.B. gar nicht mit LIMIT arbeitest. Du lädst quasi alle Einträge, auch wenn du eigentlich nur z.b. fünf brauchst.


    Es gibt auch noch meiner Ansicht nach bessere Bschreibung unter http://www.selfphp.de/kochbuch/kochbuch.php?code=32
    Dort ist, glaub ich, auch genau dein Problem geschildert.
  8. 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!