Hallo zusammen,
ich brauche dringend eure Hilfe bei der Umsetzung folgender Aufgabenstellung.
In einem kleinen Fenster auf der Startseite möchte ich die Schlagzeilen der News ausgeben, diese aber - um Umbrüche zu vermeiden - auf eine bestimmte Zeilenlänge begrenzen.
Dazu habe ich eine Funktion gefunden, die ich nun in den bestehenden Code integrieren möchte. Dabei gibt's ein Problem.
Solange die Ausgabe folgendermaßen erfolgt (ohne die Begrenzung) ist es kein Problem.
Sobald aber die Funktion zum kürzen ins Spiel kommt, bekomme ich nur noch einen Eintrag ausgegeben. Der Code hierzu sieht so aus:
Abgesehen davon das die absteigende Sortierung nun ignoriert wird, wird wie bereits erwähnt nur noch der erste Eintrag aus der Tabelle ausgegeben. Die Funktion arbeitet im übrigen einwandfrei. Ausgegeben wird der Text Testnachricht 6 Kurzer Text.... Testnachricht 6 entspricht dem Eintrag in der Tabelle, aber wo bleiben die anderen 5 Testeinträge ?
Ich kann mir ungefähr vorstellen, dass ich die Variable {$row['Ueberschrift']} entweder an anderer Stelle ansprechen, oder irgendwie in eine while-Schleife integrieren muss damits klappt. Aber wie ? Bin dankbar für jede Hilfe !
Vielen Dank im Voraus ******
ich brauche dringend eure Hilfe bei der Umsetzung folgender Aufgabenstellung.
In einem kleinen Fenster auf der Startseite möchte ich die Schlagzeilen der News ausgeben, diese aber - um Umbrüche zu vermeiden - auf eine bestimmte Zeilenlänge begrenzen.
Dazu habe ich eine Funktion gefunden, die ich nun in den bestehenden Code integrieren möchte. Dabei gibt's ein Problem.
Solange die Ausgabe folgendermaßen erfolgt (ohne die Begrenzung) ist es kein Problem.
PHP:
<?php
// Verbindung zur Datenbank herstellen
require_once "dbconnect.php";
// Tabelle erneut darstellen
// SQL-Anfrage: Ergebnis ist eine vorhandene Tabelle
$sql="SELECT ID, Ueberschrift FROM news ORDER BY ID DESC LIMIT 6";
// Anfrage ausführen
$result=mysql_query($sql) or exit("Fehler im SQL-Kommando: $sql");
// Tabelle in HTML darstellen
echo "<table width='100%' class='topnewstable' cellspacing='0px' border=\"0\">\n";
while ($row = mysql_fetch_assoc($result)) {
echo "<tr>";
echo " <td><p><a href='news.php#{$row['ID']}'>{$row['Ueberschrift']}</a></p></td>";
echo "</tr>";
}
echo "</table>\n";
?>
Sobald aber die Funktion zum kürzen ins Spiel kommt, bekomme ich nur noch einen Eintrag ausgegeben. Der Code hierzu sieht so aus:
PHP:
<?php
// Verbindung zur Datenbank herstellen
require_once "dbconnect.php";
// Tabelle erneut darstellen
// SQL-Anfrage: Ergebnis ist eine vorhandene Tabelle
$sql="SELECT ID, Ueberschrift FROM news ORDER BY ID DESC LIMIT 6";
// Anfrage ausführen
$result=mysql_query($sql) or exit("Fehler im SQL-Kommando: $sql");
// Tabelle in HTML darstellen
echo "<table width='100%' class='topnewstable' cellspacing='0px' border=\"0\">\n";
while ($row = mysql_fetch_assoc($result))
// Zeilenlänge beschränken
$description = "{$row['Ueberschrift']} Kurzer Text um die Funktion zu testen ";
function myTruncate2($string, $limit, $break=" ", $pad="...") {
// nicht kuerzen wenn Zeilenlaenge kuerzer als $limit
if(strlen($string) <= $limit) return $string;
$string = substr($string, 0, $limit);
if(false !== ($breakpoint = strrpos($string, $break))) {
$string = substr($string, 0, $breakpoint);
}
return $string . $pad;
}
$shortdesc = myTruncate2($description, 30);
{
// Ende der Funktion Zeilenlaenge beschraenken
echo "<tr>";
echo " <td><p><a href='news.php#{$row['ID']}'>$shortdesc</a></p></td>";
echo "</tr>";
}
echo "</table>\n";
?>
Ich kann mir ungefähr vorstellen, dass ich die Variable {$row['Ueberschrift']} entweder an anderer Stelle ansprechen, oder irgendwie in eine while-Schleife integrieren muss damits klappt. Aber wie ? Bin dankbar für jede Hilfe !
Vielen Dank im Voraus ******