tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
839
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    noctaru Tutorials.de Gastzugang
    Also ich habe Texte in einer Dattenbank. Nun möchte ich auf einer Seite eine Vorschau erstellen. Jedoch sollen nur die ersten 20 Wörter ausgegeben werden und dann ein "..." angehängt werden. Sobald auf den Link geklickt wird, soll der ganze Text ausgegeben werden. Dies geht warscheinlich am besten über die URL.

    Die Frage ist nun, wie stelle ich es am besten an, dass...

    1. ...nur die 20 Wörter ausgegeben werden.
    2. ...bei einem Klick der ganze Text ausgegeben wird.

    Für das ganze darf nur eine Datei verwendet werden.
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Die Abfrage dafür ist einfach:
    Code :
    1
    2
    3
    4
    
    SELECT
            CONCAT(SUBSTRING_INDEX(`spalte`, ' ', 20), ' …') AS `auszug`
      FROM
            `tabelle`
     
    Markus Wulftange

  3. #3
    noctaru Tutorials.de Gastzugang
    Mh.. irgendwie bekomme ich des jetzt nicht so ganz hin.
    Also ich habe in der DB die Spalte: id, name, topic, sortid, amendment.
    Die Ausgabe soll mit der "sortid" sortiert werden.
    Ausgegeben werden die dann in einer "while"schleife.

    PHP-Code:
    while($row mysql_fetch_object($erg)){
    $id $row->id;
    $name $row->name;
    $text $row->topic;
    $sortid $row->sortid;
    .... 
    Aber wie muss jetzt der querry lauten, dass die anderen auch mit ausgegeben werden?

    PS:. die db heißt "site".
     

  4. #4
    noctaru Tutorials.de Gastzugang
    Jetzt dachte ich schon ich hätte es geschaft, da fällt mir auf, dass "..." auch bei den Datensätzen kommt, wo weniger wie 20 Wörter sind. Wie schaffe ich es, dass diese Datensätze ohne "..." ausgegeben werden?
    Geändert von noctaru (24.04.06 um 02:19 Uhr)
     

  5. #5
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    In dem Fall müsstest du vorher die Anzahl der Wörter zählen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    SELECT
            IF( REPLACE(`amendment`, ' ', ' ') > 20,
              CONCAT(SUBSTRING_INDEX(`spalte`, ' ', 20), ' …'),
              `amendment`
            ) AS `auszug`
      FROM
            `sites`
     
    Markus Wulftange

  6. #6
    noctaru Tutorials.de Gastzugang
    Ich hab des jetzt mal angepasst, funktioniert aber irgendwie nicht.
    Es wird irgendwie alles ausgegeben. Wo ist der Fehler?

    PHP-Code:
    $query "SELECT
            IF( REPLACE(`topic`, ' ', ' ') > 20,
              CONCAT(SUBSTRING_INDEX(`topic`, ' ', 20), ' …'),
              `topic`
            )  AS `topic`, `id`, `name`, `sortid`  FROM `site`"

     

  7. #7
    TimN TimN ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Ort
    Karlsruhe (BW)
    Beiträge
    144
    Also ich habe gerade das gleiche Problem.

    Ich habe mal in der Dukumentation von MySQL nachgeschaut, und dort steht nicht, dass REPLACE die Anzahl der gefundenen Stellen zurückgibt...
    (http://dev.mysql.com/doc/refman/5.0/...functions.html)


    Gibt es dafür einen anderen Befehl?
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 30.09.09, 19:31
  2. Wörter zählen & ausgeben
    Von maxikey im Forum PHP
    Antworten: 4
    Letzter Beitrag: 15.07.08, 19:32
  3. [mysql] Nur die ersten 10 Wörter einer Zelle ausgeben
    Von Stephan Liebig im Forum Relationale Datenbanksysteme
    Antworten: 7
    Letzter Beitrag: 04.10.06, 23:05
  4. Die ersten Wörter eines Absatzes anzeigen
    Von Newcomer1 im Forum PHP
    Antworten: 3
    Letzter Beitrag: 20.09.05, 11:26
  5. Wörter per Zufall ausgeben
    Von dom123 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 12.08.05, 07:29