angezeigte Links bei Blätterfunktion beschränken

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • angezeigte Links bei Blätterfunktion beschränken

    Hallo an alle,

    mit Hilfe von vielen Postings hier, habe ich es geschafft eine Blätterfunktion in mein Forum einzubauen. Nun werden die Links auch angezeigt, nur wenn es zu viele sind sprengt es meine Seite. Daher möchte ich (wie hier im Forum) nur die nächsten 4 Links anzeigen und danach...

    Leider habe ich zur Zeit keine Idee wie ich das bewerkstelligen kann. Vielleicht kann mir jemand einen Gedankenanstoß geben. Danke vorab und hier mein Code:


    PHP-Code:
    <?php
     $ZeilenProSeite
    =20;
      if(!isset(
    $Anfangsposition)){$Anfangsposition=0;}
     
    $result=@mysql_query("SELECT ID, PID, TID, DATE_FORMAT(Zeitpunkt,'%T') AS Uhrzeit,
                            DATE_FORMAT(Zeitpunkt,'%e. %m. %Y') AS Datum, AutorName, Betreff FROM forum WHERE Board=
    $themaID ORDER BY Zeitpunkt DESC limit $Anfangsposition,$ZeilenProSeite");
    $result1=@mysql_query("SELECT ID FROM forum WHERE Board=$themaID ");
     if(!
    $result) die("<h2>Die Datenbank konnte nicht abgefragt werden.</h2>");
    $Anzahl=mysql_num_rows($result1); 


    später dann:
     <?
    php if($Anfangsposition 0) {?>
    <a class='seite' href='forum.php?Anfangsposition=0&themaID=<?php echo $themaID;?><?php if($pass=='ja'){?>&pass=<?php echo $pass;}?>&Thema=<?php echo $Thema?>'>erste Seite </a>&nbsp;&nbsp<?php ;
      
    $back=$Anfangsposition-$ZeilenProSeite;
      if(
    $back 0) {
        
    $back 0;
      }
    ?>
     <a class='seite' href='forum.php?Anfangsposition=<?php echo $back?>&themaID=<?php echo $themaID?><?php if($pass=='ja'){?>&pass=<?php echo $pass;} ?>&Thema=<?php echo $Thema?>'> zur&uuml;ck</a>&nbsp;&nbsp; <?php 
     
    }
     if(
    $Anzahl>$ZeilenProSeite) {
     echo
    " <span class='forum'>Seite</span> ";
      
    $Seiten=intval($Anzahl/$ZeilenProSeite);
      if(
    $Anzahl%$ZeilenProSeite) {
        
    $Seiten++;
      }
    }

    for (
    $i=1;$i<=$Seiten;$i++) {
      
    $fwd=($i-1)*$ZeilenProSeite;?>
      <?php //aktuelle Seite hervorheben
      
    if($Anfangsposition/$ZeilenProSeite+1==$i){?>
      
       <a class='aktiv' href="forum.php?Anfangsposition=<?php echo $fwd?>&themaID=<?php echo $themaID?><?php if($pass=='ja'){?>&pass=<?php echo $pass;} ?>&Thema=<?php echo $Thema?>"><?php echo $i?></a> &nbsp;<?php }else{?>
    <a class='seite' href="forum.php?Anfangsposition=<?php echo $fwd?>&themaID=<?php echo $themaID?><?php if($pass=='ja'){?>&pass=<?php echo $pass;} ?>&Thema=<?php echo $Thema?>"><?php echo $i?></a> &nbsp;<?php }
    }
    if(
    $Anfangsposition < ($Anzahl-$ZeilenProSeite)) {
      
    $fwd=$Anfangsposition+$ZeilenProSeite;?>
    <a class='seite' href="forum.php?Anfangsposition=<?php echo $fwd?>&themaID=<?php echo $themaID?><?php if($pass=='ja'){?>&pass=<?php echo $pass;} ?>&Thema=<?php echo $Thema?>">vor</a>&nbsp;&nbsp; 
      <?php $fwd=$Anzahl-$ZeilenProSeite;?>
     <a class='seite' href="forum.php?Anfangsposition=<?php echo $fwd?>&themaID=<?php echo $themaID?><?php if($pass=='ja'){?>&pass=<?php echo $pass;} ?>&Thema=<?php echo $Thema?>">letzte Seite</a><?php
    }?>

    P.S. Sorry, bitte nicht böse sein, ich fürchte der Code wird nicht sehr übersichtlich angezeigt, aber ich weiss leider nicht, wie man es besser machen kann :-(

    EDIT:
    php-tags eingefügt
    Abraxax

    Zuletzt geändert von Abraxax; 23.04.2003, 14:05.

  • #2
    boah benutz doch bitte php tags hier im forum

    vorher schau ich mir das gar nicht an, is ja unleserlich

    mfg

    Kommentar


    • #3
      Re: angezeigte Links bei Blätterfunktion beschränken

      Original geschrieben von Kicky
      P.S. Sorry, bitte nicht böse sein, ich fürchte der Code wird nicht sehr übersichtlich angezeigt, aber ich weiss leider nicht, wie man es besser machen kann :-(
      setz in in php-tags
      HTH

      Original geschrieben von Kicky
      for ($i=1;$i<=$Seiten;$i++) {
      wenn das die zeile is, die dir für jede seite einen link erzeugt, dann mach die schleife nicht von 1 bis Anzahl der Seiten sondern von max(1,aktuelleseite-4) bis min(aktuelleseite+4,anzahlseiten)
      EDIT:
      man kann seine beiträge hier sogar editieren und nachträgöich php-tags einfügen...
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        P.S. Sorry, bitte nicht böse sein, ich fürchte der Code wird nicht sehr übersichtlich angezeigt, aber ich weiss leider nicht, wie man es besser machen kann :-(
        hab mal php-tags drumrumgefügt. damit kann man es auch lesen.

        merke: [php ] .... [/php ] (ohne diese leerzeichen)

        EDIT:
        @Kicky
        hab deinen zweiten versuch gelöscht. der code ist ja jetzt oben schon leserlich.

        Zuletzt geändert von Abraxax; 23.04.2003, 14:05.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Herzlichen Dank für Eure Hilfe,
          ich werde mich jetzt mit der Schleife befassen, melde mich bei Erfolg noch einmal

          Gruß Kicky

          Kommentar


          • #6
            Die Anregung von mrhappiness ist logisch und verständlich, nur als Newbie komme ich leider noch immer nicht drauf, wie ich das einbauen könnte. Ich werde es weiter versuchen, aber vielleicht hat ja jemand noch einen Rat für mich. Danke im Voraus

            herzliche Grüße
            Kicky

            Kommentar


            • #7
              Original geschrieben von Kicky
              if($Anfangsposition/$ZeilenProSeite+1==$i)
              damit berechnest du doch die aktuelle seite oder?
              wie wär's wenn du dann sowas machst
              PHP-Code:
              $aktuelleseite=$Anfangsposition/$ZeilenProSeite+1;
              for(
              $i=max(1,$aktuelleseite-4);$i<=min($aktuelleseite+4,$Seiten);$i++)
                
              Ausgabe
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Danke mrhappiness,

                vom Grundsatz her funktioniert es, allerdings zeigt er mir nun am Anfang zwar nur 4 Seiten, aber danach bleiben diese alle stehen und die folgenden werden dazu geschrieben, ich werde noch ein wenig knobeln!

                Gruß Kicky

                Kommentar


                • #9
                  Oh, oh,
                  ich muss leider noch mal um Rat fragen. Hat jemand eine Idee wieso ich bei dem Code (siehe oben) mal alle und mal nur einige Datensätze ausgegeben bekomme?? Zum Teil zeigt er nur 16 Datensätze auf einer Seite und dann wieder alle 20. Einige verschluckt er völlig. An der Abfrage kann es nicht liegen, wenn ich die Blätterfunkion rausnehme dann werden alle Datensätze angezeigt. Hoffentlich hat jemand einen Rat

                  danke vorab

                  Gruß Kicky

                  Kommentar

                  Lädt...
                  X