Blätterfunktion

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

  • Blätterfunktion

    Guten Nachmittag,
    ich habe jetzt mein eigenes Guestbook mit PHP und mySQL programmiert,
    doch leider will ich nicht dass all die Beiträge unter einander sonder will mir immer z.B. nur 10 Beiträge anzeigen will und dann zu den Nächsten Beiträge bBlättern lann. Kan mir einer sagen wie ich das machen kann?

    Danke im Vorau.

  • #2
    Ein Tip vorweg, SUCHEN hilft!!

    Hier mal klicken (Codeschnipsel)!
    Zuletzt geändert von ExInfernis; 28.06.2005, 17:31.

    Kommentar


    • #3
      im mysql query "LIMIT 10" angeben und für eine Blätterfunktion schau mal im Code Schnipsel Board nach ...
      Nene, soviel Sand und keine Förmchen!

      Kommentar


      • #4
        Also danke, aber die funktion fontoniert nicht richtig, muss ich da noch was hinzu bauen oder was mache ich falsch?
        Tut mir leid aber ich bin erst ganz neu in dem gebiet...
        Das einzige was bei mir rauskommt ist: "Es wurden 4 Einträge gefunden."
        Hier nochmals der Code:

        PHP-Code:
        //  Hier oben versteht sich ja von selbst.....
          
        $sqlab "select * from tblnouveautes";
          
        mysql_select_db('mysql');

           
        $daten mysql_query($sqlab) OR die(mysql_error());

           
        $num mysql_num_rows($daten);




           if (
        $num == 0) {
               
        $istanzahl "keine";
           }
           if (
        $num == 1) {
               
        $istanzahl "1";
           }
           if (
        $num 1) {
               
        $istanzahl "mehrere";
           }


            if (
        $istanzahl == "keine") {

                 echo 
        "<font size=\"2\" face=\"Verdana\">Es wurden keine Eintr&auml;ge gefunden.</font>";
            }
            if (
        $istanzahl == "1") {

                 echo 
        "<font size=\"2\" face=\"Verdana\">Es wurde $num Eintrag gefunden.</font>";
            }
            if (
        $istanzahl == "mehrere") {

                 echo 
        "<font size=\"2\" face=\"Verdana\">Es wurden $num Eintr&auml;ge gefunden.</font>";
            }
        echo 
        "<br><br>";
        //#######################################Beginn der Bl&auml;tterfunktion#################
            
        $Zeilen_pro_Seite 5;       // Kann man &auml;ndern wie man will
            
        $maximal_ergebnisse 1000;    // Kann man &auml;ndern wie man will

        if ($num $maximal_ergebnisse) {
            echo 
        "<br>Es werden maximal nur $maximal_ergebnisse Eintr&auml;ge angezeigt, es wurden aber $num Eintr&auml;ge gefunden.<br><br>";
            
        $num $maximal_ergebnisse;
            }

            for (
        $i =0$i<$Zeilen_pro_Seite$i++) {                   // Beginn der for schleife
                
        $mail = @mysql_result($daten,$i"mail");

                if (isset (
        $_GET['page'])) {
                    
        $page $_GET['page'];
                    
        $start=$page $Zeilen_pro_Seite;
                }
                else {
                
        $start 0;
                
        $page 0;
                }

                
        $sqlab "select * from tblnouveautes LIMIT $start,$Zeilen_pro_Seite";

                
        $daten mysql_query($sqlab) OR die(mysql_error());

                
        $mail = @mysql_result($daten,$i"mail");

                echo 
        $mail;   //########################################## Hier ist die ausgabe
                
        echo "<br>";
            }                                                                  
        // ende for schleife
        echo "<br>";
        //##########Seitenzahl ermitteln##############################################
           
        if ($num $Zeilen_pro_Seite) {                                           #
               
        $seiten=floor($num/$Zeilen_pro_Seite);                                #
                                                                                     #
                   
        if ($seiten == $num/$Zeilen_pro_Seite) {                          #
                       
        $schluss $seiten;                                           #
                   
        }                                                                 #
                   
        if ($seiten $num/$Zeilen_pro_Seite) {                           #
                       
        $seiten++;                                                    #
                       
        $schluss $seiten;                                           #
                   
        }                                                                 #
            
        }                                                                        #
        //#######Jetzt hab ich immer die genaue seitenzahl mit $seiten!!!!!###########

        if (isset($seiten)) {
            for (
        $a =0$a<$seiten$a++) {      //  Beginn schleife zum Zahlen anzeigen
                
        $mail = @mysql_result($daten,$a"mail");
                if (
        $a == 0) {
                    echo 
        "<A HREF=\"mail_ausgabe.php?page=$a\">Seite 1</A>";  // Nur seite 1
                
        }
                if ((
        $a 0) And  (($a +1) < $schluss)) {
                    
        $b $a 1;
                    echo 
        "<A HREF=\"mail_ausgabe.php?page=$a\">$b</A>";
                }
                if ((
        $a +) == $schluss) {
                    echo 
        "<A HREF=\"mail_ausgabe.php?page=$a\">letzte Seite</A>";
                }
                if ((
        $a 1) < ($seiten)) {  // Damit Zwischen Seitenzahlen auch Abst&auml;nde sind!
                    
        echo "&nbsp;|&nbsp;";
                }
            }     
        // ende der for schleife
        }
        //####################  ENDE DER BL&Auml;TTERFUNKTION ######################################## 

        Kommentar


        • #5
          PHP-Code:
          for ($i =0$i<$Zeilen_pro_Seite$i++) {
            
          // wozu machst du folgendes ... ?
            
          $mail = @mysql_result($daten,$i"mail");
            
          // ...
            
          $sqlab "select * from tblnouveautes LIMIT $start,$Zeilen_pro_Seite";
            
          $daten mysql_query($sqlab) OR die(mysql_error());
            
          // wie wär's auch hier mit mysql_error()?
            
          $mail = @mysql_result($daten,$i"mail");
            echo 
          $mail;
            echo 
          "<br>";
          }
          // $num ist immernoch 4 und steht hier 'if (false)' ...
          if ($num $Zeilen_pro_Seite) {
            
          // ... hier würde $seiten initialisiert, aber is ja nich
          }
          // ... wieder false ...
          if (isset($seiten)) {
            
          // ... 

          Kommentar


          • #6
            Moin,

            bring doch erstma deinen Code etwas in Ordnung, sieht alles etwas wirr aus.

            1. Ermitteln der vorhandenen Datensätze und Berechnung der Seitenanzahl
            PHP-Code:
            $sql="SELECT count(*) from $db";
            $query=mysql_query($sql);
            $zeile=mysql_result($query,0);
            $seiten=ceil($zeile/$max_zeile); 
            2. Überprüfung ob ne Variable $_GET['page'] gesetzt ist, wenn nicht $page=1
            3. Berechnen von Start
            PHP-Code:
            $start=$page*$max_zeile-$max_zeile;
            $stop=$max_zeile
            So, nun hast du alle Infos die du zur Datenbankabfrage brauchst, nämlich Start und Ende, dazu aber später.

            4. Ausgabe der Navigation, also das :


            PHP-Code:
            if (isset($seiten)) {
                for (
            $a =0$a<$seiten$a++) {      //  Beginn schleife zum Zahlen anzeigen

                    
            $mail = @mysql_result($daten,$a"mail"); // <============ WAS SOLL DAS ??????

                    
            if ($a == 0) {
                        echo 
            "<A HREF=\"mail_ausgabe.php?page=$a\">Seite 1</A>";  // Nur seite 1
                    
            }
                    if ((
            $a 0) And  (($a +1) < $schluss)) {
                        
            $b $a 1;
                        echo 
            "<A HREF=\"mail_ausgabe.php?page=$a\">$b</A>";
                    }
                    if ((
            $a +) == $schluss) {
                        echo 
            "<A HREF=\"mail_ausgabe.php?page=$a\">letzte Seite</A>";
                    }
                    if ((
            $a 1) < ($seiten)) {  // Damit Zwischen Seitenzahlen auch Abst&auml;nde sind!
                        
            echo "&nbsp;|&nbsp;";
                    }
                }     
            // ende der for schleife 
            5. Nun erst, da die Navigation ausgegeben wurde, die steht ja meist
            oben, würde ich die Datenbankabfrage mit LIMIT machen.
            Und dann eben mit ner while()-Schleife etc. ausgeben.

            Wenn du beabsichtigst diese Blätterfunktion für verschiedene
            Seiten zu nutzen, dann schreib die eigentliche Blätterfunktion lieber in ne Funktion.
            Einen passenden Codeschnipsel hab ich oben ja gepostet.

            Kommentar

            Lädt...
            X