So viele Einträge auslesen bis bestimmte Zeichenanzahl erreicht.

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

  • So viele Einträge auslesen bis bestimmte Zeichenanzahl erreicht.

    Um das Problem genauer zu erläutern. Ich habe eine Tabelle

    mit ID, Topic und Text

    Das ganze wird zur Zeit ausgelesen und auf einer einzigen Seite dargestellt. Leider ist es aufgrund vieler Informationen sehr unübersichtlich geworden, sodass ich es auf mehrere Seiten verteilen will.
    Ist es daher möglich das SQL Statement so umzubauen, dass man nur noch soviele Einträge ausliest bis eine gewisse Anzahl an Zeichen z.B. 50000 erreicht sind? Gezählt werden müssten die Zeichen von Topic und dem eigentlichen Text.

    Oder muss ich es wohl oder übel in PHP abarbeiten lassen?

  • #2
    Hallo,

    das wirst du in PHP machen müssen. Eine einfache Blätter-Funktion reicht wirklich nicht? Warum unbedingt zeichenweise?

    Denk an die MBString-Funktionen, damit PHP sich nicht verzählt

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Wieso ist die Anzahl der Zeichen wichtig?
      Pagination basiert normalerweise auf einer maximalen Anzahl Listenelemente (Einträge) pro Seite. Das geht ganz einfach mit LIMIT.

      Wenn du mit der Zeichenzahl arbeiten willst, wird das extrem kompliziert. Du musst den Sonderfall abfangen, dass ein einzelner Eintrag mehr Zeichen enthält, als für eine Seite zulässig sind. Falls du die Gesamtzahl der Seiten anzeigen willst, musst du alle Zeichen aller Einträge zählen. Wenn man anders als nur vor/zurück blättern können soll, z.B. "gehe zu Seite x" oder "gehe 10 vor", wird es so langsam ....

      Lass das lieber sein. Baue eine normale Paginaten und kürze überlange Einträge mit SQL oder PHP, so dass sie in der Ausgabe nach einer bestimmten Zeichenzahl mit "..." enden.

      Kommentar


      • #4
        der grund warum es zeichenabhängig sein soll.
        die einzelnen einträge sind teilweise sehr unterschiedlich lang und die übersichtlichkeit ging aufgrund dieser länge verloren. wenn ich es mit ner normalen blätterfunktion mache, dann kann es durchaus vorkommen, dass auf einer seite einträge mit ingesamt 200000 und auf der nächsten nur 15000 Zeichen stehen. Daher such ich eine Lösung das ganze relativ gleichmäßig zu verteilen.

        Natürlich wenn die Performance derart darunter leiden sollte, verzichte ich lieber darauf und werde eine normale Blätterfunktion nutzen.

        Dies ist wohl einer der seltenen Fälle bei dem die Phantasie doch größer ist als die Funktionsweise von MySQL

        Trotzdem Danke

        Kommentar


        • #5
          Gegen Unübersichtlichkeit kann man ggf. auch anders vorgehen, z. B. das was onemorenerd schon sagte und einem Weiterlesen-Link oder auch ein Accordion in JavaScript…
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar

          Lädt...
          X