[SQL allgemein] Lange Texte nach X Zeichen Kürzen ( Teaser )

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

  • [SQL allgemein] Lange Texte nach X Zeichen Kürzen ( Teaser )


    Ich möchte aus meiner Datenbank einen Text auslesen, aber ich möchte das dieser Text
    nur als Vorschau benutzen. das heißt der Text soll nach x Zeichen aufhören und dann sollen noch
    3 punkte angehängt werden also ungefähr so ( Hallo, das ist der Text...)

    Einen Code hab ich bereits gefunden:


    Code:
    $sql = "SELECT
       
          IF(LENGTH(`nachricht`) > 200, CONCAT(LEFT(`nachricht`, 197), '...'), `nachricht`) AS teaser
       
          FROM
       
          `tabelle`";



    Nur Leider weis ich nicht wie ich diesen Code einbaue ....

    PHP-Code:
    <?php require_once('../../Connections/verbindung.php'); ?>
    <?php

    mysql_query
    ("SET NAMES 'utf8'");
    mysql_query("SET CHARACTER SET utf8");

    if (!
    function_exists("GetSQLValueString")) {
    function 
    GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
    {
      if (
    PHP_VERSION 6) {
        
    $theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      }

      
    $theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

      switch (
    $theType) {
        case 
    "text":
          
    $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
          break;    
        case 
    "long":
        case 
    "int":
          
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case 
    "double":
          
    $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
          break;
        case 
    "date":
          
    $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
          break;
        case 
    "defined":
          
    $theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
          break;
      }
      return 
    $theValue;
    }
    }

    $currentPage $_SERVER["PHP_SELF"];

    $maxRows_Recordset1 10;
    $pageNum_Recordset1 0;
    if (isset(
    $_GET['pageNum_Recordset1'])) {
      
    $pageNum_Recordset1 $_GET['pageNum_Recordset1'];
    }
    $startRow_Recordset1 $pageNum_Recordset1 $maxRows_Recordset1;

    mysql_select_db($database_verbindung$verbindung);
    $query_Recordset1 "SELECT *  FROM tblspieledatenbank WHERE int_genre_id = 5 ORDER BY str_spiel_name ASC";

    $query_limit_Recordset1 sprintf("%s LIMIT %d, %d"$query_Recordset1$startRow_Recordset1$maxRows_Recordset1);
    $Recordset1 mysql_query($query_limit_Recordset1$verbindung) or die(mysql_error());
    $row_Recordset1 mysql_fetch_assoc($Recordset1);

    if (isset(
    $_GET['totalRows_Recordset1'])) {
      
    $totalRows_Recordset1 $_GET['totalRows_Recordset1'];
    } else {
      
    $all_Recordset1 mysql_query($query_Recordset1);
      
    $totalRows_Recordset1 mysql_num_rows($all_Recordset1);
    }
    $totalPages_Recordset1 ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;

    $queryString_Recordset1 "";
    if (!empty(
    $_SERVER['QUERY_STRING'])) {
      
    $params explode("&"$_SERVER['QUERY_STRING']);
      
    $newParams = array();
      foreach (
    $params as $param) {
        if (
    stristr($param"pageNum_Recordset1") == false && 
            
    stristr($param"totalRows_Recordset1") == false) {
          
    array_push($newParams$param);
        }
      }
      if (
    count($newParams) != 0) {
        
    $queryString_Recordset1 "&" htmlentities(implode("&"$newParams));
      }
    }
    $queryString_Recordset1 sprintf("&totalRows_Recordset1=%d%s"$totalRows_Recordset1$queryString_Recordset1);
    ?>

    Für Hilfe bin ich dankbar, weis nicht weiter ...

  • #2
    Du hast es nichtmals versucht, oder?

    Das sollten eigentlich Grundlagen sein, aber bevor ich mir die Mühe mache, das zu verschieben, versuchen wir es mal zusammen:

    Wenn ich es auf den ersten Blick richtig sehe, ist das hier deine Query:
    PHP-Code:
    SELECT *  FROM tblspieledatenbank WHERE int_genre_id 5 ORDER BY str_spiel_name ASC 
    Hinter das Sternchen (hier sollten eigentlich die gewünschten Spaltennamen stehen! ) fügst du einfach mit einem Komma getrennt die entsprechende Stelle aus der gefundenen Query ein.

    Fertig!

    Kommentar


    • #3
      mhh

      oki das hab ich mal gemacht

      mein Feld heißt txt_beschreibung, das den Text enthählt

      PHP-Code:
      mysql_select_db($database_verbindung$verbindung);
      $query_Recordset1 "SELECT *  , IF(LENGTH(`txt_beschreibung`) > 200, CONCAT(LEFT(`txt_beschreibung`, 197), '...'), `txt_beschreibung`) AS teaser
         
            FROM
         
            `tblspieledatenbank`"
      ;



      FROM tblspieledatenbank WHERE int_genre_id 5 ORDER BY str_spiel_name ASC"; 
      nur leider geht es nicht... bekomme dann sintax fehler

      Parse error: syntax error, unexpected T_STRING

      mhh...

      Kommentar


      • #4
        Original geschrieben von erniedd
        mhh

        oki das hab ich mal gemacht

        mein Feld heißt txt_beschreibung, das den Text enthählt

        PHP-Code:
        mysql_select_db($database_verbindung$verbindung);
        $query_Recordset1 "SELECT *  , IF(LENGTH(`txt_beschreibung`) > 200, CONCAT(LEFT(`txt_beschreibung`, 197), '...'), `txt_beschreibung`) AS teaser
           
              FROM
           
              `tblspieledatenbank`"
        ;



        FROM tblspieledatenbank WHERE int_genre_id 5 ORDER BY str_spiel_name ASC"; 
        nur leider geht es nicht... bekomme dann sintax fehler

        Parse error: syntax error, unexpected T_STRING

        mhh...
        Du verwendest noch immer SELECT *, obwohl du das nicht sollst.

        Was soll der SQL-Code, der irgendwo sinnlos in der Gegend rumsteht?

        Kommentar


        • #5
          ich hab es jetzt mit echo gelöst

          PHP-Code:
          <td><?php echo substr$row_Recordset1['txt_beschreibung'], 0strpos$row_Recordset1['txt_beschreibung'], "."120)+1); ?>&nbsp; </td>
          weis es einfach nicht anders

          trotzdem danke für die hilfe

          Kommentar


          • #6
            Du wurdest konkret auf den Fehler, der sich übrigens im PHP-Code befindet, hingewiesen. Wenn du das nicht wahrnimmst, kann man dir nicht helfen.

            Kommentar

            Lädt...
            X