• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Lange Texte nach x Zeichen kürzen (Teaser)

erniedd

New member

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 in meinen Code einbaue :(

PHP:
<?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);
?>

Mit Php möchte ich es nicht lösen, damit meine Datanbank nicht so beansprucht wird und ich nur das rauslese was ich auch brauche.


Hier ist nochma der Komplette Code


Anhang anzeigen code02.txt


Für Hilfe bin ich dankbar, weis nicht weiter ... :sleepy:
 
du musst doch nur tabelle durch deinen Tabellennamen ersetzten und nachricht durch deinen Spaltennamen. Bzw den * durch die Spalten ersetzen die du benötigst und den von dir rausgesuchten IF-Part der Query
 
oki mhh soweit bin ich mitgekommen

Mein Feld heißt txt_beschreibung und die Tabelle tblspieledatenbank

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

aber ab hier steh ich aufn schlauch...

Bzw den * durch die Spalten ersetzen die du benötigst und den von dir rausgesuchten IF-Part der Query
 
Ist den dein Code von dir?
Wenn ja scheinst du ja zu wissen wie man ne Anfrage an ne Datenbank macht. Ich steige allerdings durch deinen Code nicht durch, vielleicht erklärst du mal genauer was du damit bezweckst.

Grob müsste das jedoch so aussehen:
PHP:
// Datenbankverbindung muss aufgebaut sein
$sql = "SELECTIF(LENGTH(`txt_beschreibung`) > 200, CONCAT(LEFT(`txt_beschreibung`, 197), '...'), `txt_beschreibung`) AS teaser  FROM `tblspieledatenbank`";
$result = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_assoc($result))
{
    echo $row['teaser'];
}
 
ich hab es jetzt mit echo gelöst

PHP:
<td><?php echo substr( $row_Recordset1['txt_beschreibung'], 0, strpos( $row_Recordset1['txt_beschreibung'], ".", 120)+1); ?>  </td>

weis es einfach nicht anders, denke ma das es oki ist, da meine texte nicht so groß werden

trotzdem danke für die hilfe
 
Zurück
Oben