Datenbankeinträge seitenweise ausgeben

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

  • Datenbankeinträge seitenweise ausgeben

    Ich möchte Titel nach Seiten ausgeben, d.h. 20 Titel auf der einen Seite, die nächsten 20 usw., das ganze nach dem Datum geordnet.
    Wie könnte ich das genau anstellen, als erstes Datenbankanfrage und Ausgabe normal, aber wie dann weiter?

  • #2
    hoch lebe die forumsuche!

    Kommentar


    • #3
      Original geschrieben von penizillin
      hoch lebe die forumsuche!
      und zwar zielgerichtet auf das Codeschnipsel Forum
      [color=blue]MfG Payne_of_Death[/color]

      [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
      [color=red]Merke:[/color]
      [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

      Murphy`s Importanst LAWS
      Jede Lösung bringt nur neue Probleme
      Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
      In jedem kleinen Problem steckt ein großes, das gern raus moechte.

      Kommentar


      • #4
        Wen es interessiert, habe das Problem so gelöst:
        PHP-Code:
        $num 0;
        $load mysql_query("SELECT * FROM $dbnews");
        while(
        $row mysql_fetch_array($load))
        {
            
        extract($row);
            
        $num++;
            
        $seite ceil($num/$admin_news_z);
            
        $num2 $num/$seite;
            
        $seiten ceil(mysql_num_rows($load)/$admin_news_z);
            if(
        $num2 <= ($seite*$admin_news_z) && $_GET['page'] == $seite 
        OR ($seite == && $_GET['page'] == ""))
            {
                echo 
        $titel."<br>";
                
        $seite_s $seite;
            }
        }
        echo 
        "<br>";
        $zahl 1;
        $page $_GET['page'];
        $page2 $page;
        $page++;
        $page2--;
        while(
        $zahl <= $seiten)
        {
            if(
        $_GET['page'] == $zahl)
            {
                echo 
        "$zahl ";
            }
            elseif(
        $zahl == $seiten)
            {
                echo 
        "<a href='?page=".$zahl."'>".$zahl."</a>
         <a href='?page="
        .$page."'>weiter</a>";
            }
            elseif(
        $zahl-== 0)
            {
                echo 
        "<a href='?page=".$page2."'>zurück</a>
         <a href='?page="
        .$zahl."'>".$zahl."</a> ";
            }
            else
            {
                echo 
        "<a href='?page=".$zahl."'>".$zahl."</a> ";
            }
            
        $zahl++;

        Kommentar


        • #5
          Wie könnte ich das genau anstellen, als erstes Datenbankanfrage und Ausgabe normal,
          schon falsch!

          aber wer nicht sucht, der hat schon...

          Kommentar


          • #6
            Original geschrieben von TobiaZ
            schon falsch!

            aber wer nicht sucht, der hat schon...
            Wieso falsch, als erstes das coden und dann in den "Blättern Code" einbauen, jedenfalls war es bei mir und funktioniert einmanfrei.

            Kommentar


            • #7
              PHP-Code:
              //wie wäre es denn mit count deine einträge zu zählen?
              mysql_query("SELECT 
                                 count(*) 
                                 FROM Tabelle
                                 where deine bedingung"
              ); 
              mfg
              marc75

              <Platz für anderes>

              Kommentar


              • #8
                gibt aber in den Code-Schnipseln einen Vorschlag, der IMHO besser ist.
                Habe deinen Coder nur überflogen, aber
                PHP-Code:
                SELECT FROM $dbnews 
                ist nicht unbedingt die beste Lösung. LIMIT ist ein guter Freund...
                EDIT:
                Schon wieder zu spät...
                Zuletzt geändert von Heini81; 21.12.2004, 11:22.

                Kommentar


                • #9
                  Danke, aber warum soll ich Limit nehmen, welchen Vorteil hat das in meinem Code? (Ich weiß, dass Limit die Einträge auf eine Zahl begrenzt.)
                  Ist es eigentlich sinnvoller/schneller $_GET-Anhängsel mit $_SERVER['QUERY_STRING'] den Links anzuhängen oder selber zu generieren?

                  Kommentar


                  • #10
                    Stell dir mal vor, du hast 500 Einträge in der DB, du rufst sie also jedesmal
                    komplett ab. Wenn das man nicht irgendwann an die Performance geht...

                    Der Codeschnipsel löst das eigentlich ganz gut, habe den mit Anpassungen
                    auch bei mir laufen, und funktioniert ohne Probleme.

                    Kommentar


                    • #11
                      Wenn ich das aber so mache, dann werden nur die Anzahl der Einträge angezeigt, meinet wegen LIMIT 5, dann kommen nur 5 Einträge aus der DB.

                      Kommentar


                      • #12
                        Schau dir das mal an, ist eine normale Ausgabe, wie auch News ausgegeben werden, es sei denn, ich habe jetzt etwas total verwechselt.
                        Angehängte Dateien

                        Kommentar


                        • #13
                          Bin ich jetzt im falschen Thread? Ich dachte, das soll so sein.
                          20 Titel auf der einen Seite, die nächsten 20 usw.,
                          Und da ist LIMIT die richtige Wahl.
                          Und aus deinem Attachment werde ich leider nicht sehr schlau
                          LIMIT mit nur einem Parameter gibt die ersten Datensätze aus, mit zwei
                          Parametern kannst du den Startpunkt und die Anzahl der Datensätze
                          ausgeben.

                          Kommentar


                          • #14
                            Ich bin dabei, deine Version zu testen, aber habe momentan den Dreh noch nicht raus, weil dort (zummindest bei mir) ein bisschen was umgeschrieben werden muss. Habe meine Version aber getestet, mit ca. 25.000 News gab es keine Performenceprobleme, bei ca. 650.000 Newseinträgen ca. eine Dauer von 2s (DB-Abfrage).

                            Kommentar


                            • #15
                              Danke, nach einigem umcoden funktioniert es jetzt wunderbar, danke für die Hilfe!

                              Kommentar

                              Lädt...
                              X