LIMIT mehrfach anwenden

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

  • LIMIT mehrfach anwenden

    Hallo zusammen,

    habe ein Problem und komme selbst nach Suche nicht weiter!

    Folgendes:
    Ich habe ein Newssystem mit Blätterfunktion. Für die Blätterfunktion benutze ich LIMIT.
    Es werden bei der Abfrage alle Newseinträge ausgelesen, die freigegeben sind. Nun will ich aber eine weiteres LIMIT in der Abfrage nutzen, um nur die letzten 100 Newseinträge auszulesen.
    Wie kann ich das lösen?! Hab da was mit subselect gelesen...korrekt?!

    Hier meine Abfrage:

    PHP-Code:
    $sql="SELECT * FROM news_".$newsid." WHERE free='on' ORDER BY date $Desc, time $Desc LIMIT $start$eintraege_pro_seite
    Danke & Greetinx

  • #2
    Du könntest in der Tat mit einem Subselect ermitteln, wieviele Datensätze insgesamt vorhanden sind.

    Edit: Mhm, ich glaube, es ist performanter, wenn du einen Query absetzt, der ermittelt wieviel Datensätze vorhanden sind, und dir daraus einen Query zusammenbaust.
    Zuletzt geändert von unset; 30.04.2008, 11:00.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Kannst Du mir ein Beispiel geben wie das dann aussehen soll?!

      Kommentar


      • #4
        Wie du die Anzahl von Datensätzen ermittelst, wirst du ja wohl grade noch wissen, oder?
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Ja! Aber der PHP-Profil bin ich nicht!

          Ich versteh nicht ganz Query und dann daraus Query.

          Hab ich das so richtig verstanden:
          Also ich mach ne Abfrage mit LIMIT um die letzten 100 Datensätze auszulesen.
          Und dann kann ich danach das Ergebnis auf gleiche Weise wie meine Abfrage (s.o.) durchführen?!!!

          Kommentar


          • #6
            Du ermittelst, wieviele Datensätze vorhanden sind, daraus kannst du den Offset ermittelnt (was du "$start" genannt hast). Das wäre die Menge Minus der Menge, die du auslesen willst, also Ergebnis Minus 100. Das ersetzt du dann einfach mit $start in deinem Query. Fertig. Was ist daran so schwer zu kapieren?
            [FONT="Helvetica"]twitter.com/unset[/FONT]

            Shitstorm Podcast – Wöchentliches Auskotzen

            Kommentar


            • #7
              Sorry, aber $start brauch ich doch für meine Blätterfunktion!


              PHP-Code:
              $page $_GET['goto'];

              $start $page $eintraege_pro_seite $eintraege_pro_seite

              Kommentar


              • #8
                Herrgott, dann nimm eine andere Variable. Grundlagen kannst du dir auch selbst aneignen.
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Kommentar


                • #9
                  danke für die freundliche Antworten!

                  Meine Frage ist doch nur, wo und wie ich dann in die oben angegeben Abfrage die Variable einsetzen muss!!!
                  Ein kleines Beispiel hätte uns viel Zeit erspart!

                  Vielleicht kann mir ja dennoch jemand helfen... da ich leider nicht auf den Trichter komm!

                  Kommentar


                  • #10
                    Ich werde einen Teufel tun und dir Code vorgeben, ich helfe dir gerne, wenn du mit dem, was du erarbeitet hast nicht zurecht kommst. Ich habe dir gesagt, was zu tun ist - Punkt.
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #11
                      Original geschrieben von unset
                      Mhm, ich glaube, es ist performanter, wenn du einen Query absetzt, der ermittelt wieviel Datensätze vorhanden sind, und dir daraus einen Query zusammenbaust.
                      Gelesen und verstanden? Es ist reine Mathematik:
                      1. Query absetzen, welches die Gesamtzahl aller Datensätze ermittelt
                      PHP-Code:
                      $result mysql_query('SELECT COUNT (column) FROM table WHERE condition'); 
                      2. Anzahl der Seiten ermitteln, die dargestellt werden sollen
                      PHP-Code:
                      $totalPages ceil($alleDatensaetze $datensaetzAufEinerSeite); 
                      3. Neues Query absetzen
                      PHP-Code:
                      $result mysql_query('
                          SELECT 
                              column 
                          FROM 
                              table 
                          WHERE 
                              condition 
                          LIMIT ' 
                      . ( ($aktuelleSeite 1) * $datenSaetzeAufEinerSeite).", " $datenaetzeAufEinerSeite
                      Fertig ...
                      MM Newmedia | MeinBlog

                      Kommentar

                      Lädt...
                      X