felix: Maximale Zeichenlänge anzeigen

Hi,

ich lese einen Wert aus einer Datenbank aus und lasse mir diesen Anzeigen. Wenn der Wert ueber 50 Zeichen hat, passt er nicht mehr in eine Tabelle. Jetzt möchte ich, dass 45 Zeichen angezeigt werden und es dann mit 3 Punkten ('...') weitergeht bzw endet. Wie stelle ich das an ?

Grüße, und Danke.

Felix

  1. Moin felix!
    schaue dir substr(); an:

    http://de3.php.net/manual/de/function.substr.php

    tschüss ichen

    --
    Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
  2. ich lese einen Wert aus einer Datenbank aus und lasse mir diesen Anzeigen. Wenn der Wert ueber 50 Zeichen hat, passt er nicht mehr in eine Tabelle. Jetzt möchte ich, dass 45 Zeichen angezeigt werden und es dann mit 3 Punkten ('...') weitergeht bzw endet. Wie stelle ich das an ?

    if ( 50 > strlen( $string ) )
    {
        $string = substr( $string, 0, 45 ).'...';
    }

    --
    Gruss Martin
  3. hi,

    ich lese einen Wert aus einer Datenbank aus und lasse mir diesen Anzeigen. Wenn der Wert ueber 50 Zeichen hat, passt er nicht mehr in eine Tabelle. Jetzt möchte ich, dass 45 Zeichen angezeigt werden und es dann mit 3 Punkten ('...') weitergeht bzw endet. Wie stelle ich das an ?

    am besten _nicht_ erst PHP-seitig, sondern schon beim auslesen aus der DB.
    wozu daten vom DB- an den webserver übertragen, die dann doch nicht gebraucht werden?

    gruß,
    wahsaga

    --
    I'll try being nicer if you'll try being smarter.
    1. Natürlich brauche ich die Daten, sonst würde ich sie ja nicht auslesen :-)

      Das ist ein Name. Der Name kann seehhhrrr lang sein. Habe aber nur beschrenkt Platz. Die gekürzten Namen sieht man ja eh nur im admin bereich.

      danke an alle,

      grüße felix

      1. hi,

        Natürlich brauche ich die Daten, sonst würde ich sie ja nicht auslesen :-)

        was jemand ausliest, und was er davon "braucht", weicht oftmals voneinander ab. so auch hier:

        Das ist ein Name. Der Name kann seehhhrrr lang sein. Habe aber nur beschrenkt Platz. Die gekürzten Namen sieht man ja eh nur im admin bereich.

        also brauchst du an _der_ stelle doch wohl _nicht_ den gesamten namen?

        gruß,
        wahsaga

        --
        I'll try being nicer if you'll try being smarter.
        1. Genau, ich brauche nur die ersten 30 Zeichen, der Rest wird mit ... dagestellt.

          Beispiel:

          Superlangerfirmennamedernurner ...

          :o)

          Ich lese in der Regel auch nur das aus einer DB aus, was ich brauche, Rest wäre ja unnötig.

          Grüße,

          Felix

  4. Hallo felix!

    Jetzt möchte ich, dass 45 Zeichen angezeigt werden und es dann mit 3 Punkten ('...') weitergeht
    bzw endet. Wie stelle ich das an ?

    <?php
      $text = (strlen($text)>45) ? substr($text, 0, 45)."..." : $text;
    ?>

    Links:
     - PHP-Handbuch: strlen(): http://de.php.net/manual/de/function.strlen.php
     - PHP-Handbuch: substr(): http://de.php.net/manual/de/function.substr.php

  5. Hallo Felix,

    mache es doch gleich auf der Datenbank. Bei MySQL hieße das Statement:

    SELECT
    if (length(TEXT_Inhalt)>550,
    concat(left(TEXT_Inhalt, 509 + instr(right(left(TEXT_Inhalt,550),40), ' ')),'...'),TEXT_Inhalt) as TEXT_Inhalt
    FROM TEXTe

    Schönen Gruß aus München

    die knappschaft

    --

    sh:(  fo:|  ch:?  rl:°  br:$,<,>  n4:&  ie:|  mo:|  va:)  de:]  zu:)  fl:|  ss:|  ls:[,#
    1. mache es doch gleich auf der Datenbank. Bei MySQL hieße das Statement:

      Hast recht, ist die beste Lösung!

      SELECT
      if (length(TEXT_Inhalt)>550,
      concat(left(TEXT_Inhalt, 509 + instr(right(left(TEXT_Inhalt,550),40), ' ')),'...'),TEXT_Inhalt) as TEXT_Inhalt
      FROM TEXTe

      Wie einfach. Darauf hätte ich auch selber kommen können.
      Habe es so gelöst:

      SELECT id,
      if (LENGTH(company)>32, concat(LEFT(company, 32)," ..."),company), k_in, k_out FROM p_kunde');

      Dank euch allen !

      Grüße aus Freiburg,
      Felix

  6. Hello,

    z.B.:

    Select if(length(textfeld)>50,concat(left(textfeld,45),'...'),textfeld) as shorttext from $table;

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau