Ankündigung

Einklappen
Keine Ankündigung bisher.

Anzeigen der Seitenzahl beim Blättern

Einklappen

Neue Werbung 2019

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

  • Anzeigen der Seitenzahl beim Blättern

    Hallo Forum!

    Ich habe eine Galerie mit Vorschau und einer Blätterfunktion zusammengebastelt.
    Das einzige was jetzt noch fehlt, ist die Anzeige der Seiten.
    Soweit der bisherige Code, der die Anzahl der Datensätze
    feststellt:

    PHP-Code:
    // Feststellen der Anzahl der verfügbaren Datensätze.
    $resultID = @mysql_query("SELECT COUNT(name) FROM ".$table);
    $total    = @mysql_result($resultID,0);

    // Ggf. $start korrigieren (falls Parameter in
    // der URL manipuliert wurde)
    $start    = ($start >= $total) ? $total $limit $start
    Und hier der Teil, der das "vor" und "zurück" beim Blättern anzeigt:

    PHP-Code:
    // Zurück- und Vorblättern
    if ($start 0)
    {
      
    $newStart = ($start $limit 0) ? : ($start-$limit);
      echo 
    "[url=".$_SERVER['PHP_SELF']."]<< back[/url]";
    }

    if (
    $start $limit $total)
    {
      
    $newStart $start $limit;
      echo 
    " [url=".$_SERVER['PHP_SELF']."]vor >>[/url]";
    }
    echo 
    "</font></td></tr></table>"
    Jetzt meine Frage, wie realisiere ich eine Seitenanzeige mit
    den Link zur jeweiligen Seite?

    Hat jemand eine Idee?

    MfG
    maccoder


  • #2
    mit nem array()???

    Kommentar


    • #3
      http://de.php.net/manual/de/control-structures.for.php
      ?

      Kommentar


      • #4
        Hallo Forum!

        Bin ich in der Anfängerabteilung dieses Forums oder bei den Profis?

        Deshalb: Kluge Antwort, aber kaum hilfreich.

        Ich weiß wie festgestellt wird, ob eine weitere Seite generiert und über PHP_SELF ausgegeben
        wird. Nicht klar ist mir aber, wie ich die Anzahl der Seitenanzahl anzeigen lasse.

        MfG
        maccoder

        Kommentar


        • #5
          Also die Kontrollstrukturen von PHP solltest du kennen, foreach, for, switch, if, else ...

          Dann hast du doch schon in der Variable $total die Gesamtzahl stehen. Jetzt legst du fest, wieviele Einträge pro Seite angezeigt werden sollen, dann teilst du sie durch $total und rundest auf. Jetzt hast du die Seitenanzahl. Mit der for ()-Schleife schreibst du jetzt die Links raus:

          http://de.php.net/manual/de/control-structures.for.php
          http://de3.php.net/ceil

          Kommentar


          • #6
            Hallo Forum, hallo Zergling!

            Meinst Du das ganze so:


            PHP-Code:
            <?php
            $seitenanzahl 
            ceil($total $trefferproseite);
            ?>
            MfG
            maccoder

            Kommentar


            • #7
              Probiers aus und verstehe warums so richtig ist

              Kommentar


              • #8
                Hallo Zergling!

                Ich erhalte folgende Fehlermeldung:

                Warning: Division by zero in /home/d/dream.de/public_html/galerie-fr.php on line 68
                Seite 1 von 0

                Hier der modifizierte Code:

                PHP-Code:
                <?php
                // Zurück- und Vorblättern
                $seitenanzahl ceil($total $trefferproseite); 

                // Seiten generieren    
                $seiteplus $seite 1;
                $seiteminus $seite 1;
                $seite = ($seite 1);

                // Seite definieren
                if ($seite >= $seitenanzahl) {
                    
                $next ""
                  } else {
                    
                $next "[url=" .$PHP_SELF"] >> weiter >> [/url] ";    
                }

                if (
                $seite <= 1) {
                    
                $previous "";
                  } else {
                    
                $trefferid = ($grenze 5);
                    
                $previous "[url=" .$PHP_SELF"] << zurück << [/url] ";
                }
                ?>
                <table cellspacing="0" cellpadding="0" border="0" class="contenttablecontent">
                <tr > 
                <td width=132 height="20" valign="middle" align="left" class="contenttxtcontent" style="padding-left:5px;">
                <? 
                // Link zur Seite davor
                echo $previous;
                ?>
                </td>
                <td width=200 align="center" valign="middle" class="contenttxtcontent">
                <?
                // Seitenzahl
                echo "Seite " .$seite. " von " .$seitenanzahl;
                ?>                 
                </td>
                <td width=132 align="right" valign="middle" class="contenttxtcontent" style="padding-right:5px;">                
                <? 
                // Link zur nächsten Seite
                echo $next;
                ?>
                </td>
                </tr>
                </table>
                ?>
                MfG
                maccoder

                Kommentar


                • #9
                  Wo definierst du $trefferproseite?

                  Kommentar


                  • #10
                    Hallo Zergling!

                    Das war eine gute Frage.
                    Die Antwort muss $limit und nicht $trefferproseite heißen.

                    Jetzt tritt die Fehlermeldung nicht mehr auf.

                    Noch bin ich nicht fertig, aber ich probier noch ein bißchen herum.

                    Kommentar


                    • #11
                      Ich trete auf der Stelle.
                      Das Problem ist, das die Zahl in der URL im um 12 steigen muss,
                      damit eine neue Seite gezeigt wird:

                      galerie-de.php
                      (Startseite)

                      galerie-de.php?start=0
                      (erst Seite bei zurück)

                      galerie-de.php?start=12
                      (Seite 2)

                      galerie-de.php?start=12 // 24 meinst du?
                      (Seite 3)

                      Wie bekomme ich das am besten hin?
                      Code:
                      for ($i = 1, $s = 0; $i <= $seitenzahl; $i++, $s += 12) {
                        printf('%u', $s, $i);
                      }

                      Kommentar


                      • #12
                        Ein kleiner Hinweis: Statt SELECT COUNT(*) zu verwenden, kannst du auch den Zusatz SQL_CALC_FOUND_ROWS in deiner LIMIT-Abfrage benutzen und die Anzahl aller Datensätze anschließend mit SELECT FOUND_ROWS() ermitteln.

                        Kommentar


                        • #13
                          Hallo Zergling!

                          Wo muss eigentlich der Code eingefügt werden?

                          Z.Zt. sieht die Baustelle so aus:

                          PHP-Code:
                          <?php
                          // Zurück- und Vorblättern
                          $seitenanzahl ceil($total $limit); 

                          // Seiten generieren    
                          $seiteplus $seite 1;
                          $seiteminus $seite 1;
                          $seite = ($seite 1);

                          // Seite definieren
                          if ($start 0)
                          {
                            
                          $next = ($start $limit 0) ? : ($start-$limit);
                            echo 
                          "[url=".$_SERVER['PHP_SELF']."]&lt;&lt; zur&uuml;ck[/url]";
                          }

                          if (
                          $start $limit $total)
                          {
                            
                          $previous $start $limit;
                            echo 
                          " [url=".$_SERVER['PHP_SELF']."]vor &gt;&gt;[/url]";
                          }
                          ?>
                          <table cellspacing="0" cellpadding="0" border="1">
                          <tr > 
                          <td width=132 height="20" valign="middle" align="left" class="contenttxtcontent" style="padding-left:5px;">
                          <? 
                          // Link zur Seite davor
                          echo $previous;
                          ?>
                          </td>
                          <td width=200 align="center" valign="middle" class="contenttxtcontent">
                          <?
                          // Seitenzahl
                          echo "Seite " .$seite. " von " .$seitenanzahl;
                          ?>                 
                          </td>
                          <td width=132 align="right" valign="middle" class="contenttxtcontent" style="padding-right:5px;">                
                          <? 
                          // Link zur nächsten Seite
                          echo $next;
                          ?>
                          </td>
                          </tr>
                          </table>
                          ?>
                          MfG
                          maccoder

                          Kommentar


                          • #14
                            EDIT: Einmal hätte auch gereicht.

                            Kommentar


                            • #15
                              Zitat von maccoder
                              Wo muss eigentlich der Code eingefügt werden?
                              An der Stelle, an der du die Seitenzahlen angezeigt haben möchtest, also vermutlich da, wo jetzt noch die Links zur vorherigen und nächsten Seite stehen.

                              Kommentar

                              Lädt...
                              X