Peters rechtes Knie: Zweite Seite anzeigen

Hi,
man sieht immer häufiger, dass längere Artikel "gesplittet" werden und man eine zweite Seite anklicken muss.
Ich habe meine Artikel in einer MySQL-Datenbank und arbeite - wenn auch noch nicht lange - mit Php. Gibt es eine Möglichkeit, die Wörter in der DB zu zählen, den Text automatisch zu cutten und die zweite Seite anzuzeigen? Wenn ja, gibt es soetwas fertig und/oder wie heißt das und wonach muss ich suchen?

Vielen Dank

  1. Hello,

    Ich habe meine Artikel in einer MySQL-Datenbank und arbeite mit Php. Gibt es eine Möglichkeit, die Wörter in der DB zu zählen, den Text automatisch zu cutten und die zweite Seite anzuzeigen?

    Guckst Du http://dev.mysql.com/doc/refman/5.1/en/string-functions.html
    speziell http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_substr
    oder
    http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_substring-index

    Und dann füllst Du mal ein Datenfeld, dessen Spalte einen der *Texttypen hat mit ganz viel Worten und machst ein paar Selects zum Test.

    Du musst also nicht das ganze Feld auslesen, sondern immer nur einen Teil.
    Die erste Seite ist ganz einfach zu erhalten:

      
    select substr_index(`l_text`, ' ', 20) as `part` -- zwanzig Worte lesen  
    from `my_table`  
    where `id` = my_id;  
      
    
    

    Für die zweite musst Du basteln:
    Du beschaffst Dir die Länge der bereits gelesenen und merkst Sie dir in $len.
    Dann holst Du den Substring des Feldes ab der Position bis zum Ende des Feldes und übergibst diesen an die bereits benutzte Funktion.

      
    select substr_index(substr(`l_text`, $len+1), ' ', 20) as `part`  
    from `my_table`  
    where `id` = my_id;  
      
    
    

    Solange ein Ergebnis in partsteckt, also die Stringlänge > 0 ist, ist

      
    $len += mb_strlen($partstring);  
      
    
    

    und du bietest einen Link auf die nächste Seite an.

    Denke daran, dass MySQL bei Strings mit 1 anfängt zu zählen.

    Anfangen solltest Du mit einem "Affenformular".

    Alternativ kannst Du das natürlich auch in PHP lösen.
    Dazu arbeitest Du am besten mit einer Session, in der Du den Datensatz aus der DB speicherst.
    Dann brauchst Du nur einen Datenbankzugriff am Anfang und wendest obiges Verfahren (zumindest so ähnlich) auf das Element in der Session an.

    http://de2.php.net/manual/en/function.mb-substr.php
    http://de2.php.net/manual/en/function.mb-strpos.php

    Du könntest Dir am Anfang mittels einer While-Schleife alle Vorkommen für "Wortenden" in einem Array speichern.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bikers-lodge.com