Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Newsbeiträge - Kürzen / Funktion bzw. Problem

Schönen Lieben Tag User,

da ich gerade an meiner Newsecke Änderungen vornehme, wollte ich eben dass klassische Modell
einbauen, wo nach einer bestimmten Anzahl an Zeichen (hier 250) der Eintrag "abgebrochen" wird
und nur durch einen Klick auf einen "Mehr lesen"-Link zugänglich ist. Die Abfragen funktionieren,
jedoch wird mir der Beitrag komischerweise nicht gekeürzt, auch wird kein "Mehr lesen"-Link erzeugt,
sodass wohl im Code ein kleiner Logikfehler vorherrschen muss.

Würde mich über eure Hilfe freuen! (Keine Fehlermeldungen, nur eben werden die News -> Komplett ausgegeben)

[PHP]
<table width="703">
<tr>
<td><div align="center">
<table width="695">
<tr>
<td height="26" background="images/bg_titel.jpg"><div align="center" class="footer">Orange Ekstraklasa Newsflash<span class="menue_start"> </span> </div></td>
</tr>
</table>
</div></td>
</tr>
<tr>
<td><table width="695" align="center">
<tr>
<td height="255"><div align="center"></div> <?php
@mysql_connect("localhost", "------", "-----") or die("Verbindung zur Datenbank gescheitert");
@mysql_select_db("---------") or die("Datenbankzugriff verweigert");
if (isset($_GET["id"])) {
$sql = "SELECT * FROM Ekstraklasa_News WHERE id=$_GET[id]";
$result = mysql_query($sql);
$row = @mysql_fetch_assoc($result);
echo "<h3>$row[Newstitel]</h3>\n" . "<p>" . nl2br($row["Newstext"]) . "</p>" . "<div><small>eingetragen von <b>$row[Autor]</b> am " . "<strong>$row[Datum]</strong></small></div><br>\n";
echo "[ <a href='javascript:history.back()'>Zurück</a> ]";
} else {
$sql1 = "SELECT * FROM Ekstraklasa_News ORDER BY ID DESC LIMIT 0, 1";
$result1 = mysql_query($sql1);
// while-Schleife Anfang
while ($row = @mysql_fetch_assoc($result1)) {
$Newstext = nl2br($row["Newstext"]);
// Eintragslänge kürzen
if (strlen($Newstext) > 250) {
$Newstext = substr($Newstext, 0, 250);
$Newstext .= "... <br>";
$Newstext .= "[ <a href='$_SERVER[PHP_SELF]?id=$row[id]'>" . "Alles lesen</a> ]";
}
// Einträge anzeigen
echo '<table width="695">
<tr>
<td width="150" rowspan="2">'.$row ['Bild'].'</td>
<td width="533" class="menue_start">'.$row['Newstitel'].'</td>
</tr>
<tr>
<td class="newstext_kurz">'. nl2br($row["Newstext"]) .'</td>
</tr>
</table>';
[/PHP]

Hier gehts zum Orginal Eintrag "Newsbeiträge - Kürzen / Funktion bzw. Problem" im Forum

Antworten

Gibt es denn Beiträge mit mehr als 250 Stellen? Mache doch mal ein paar überprüfende echo's in den Code (gibt zum Beispiel die Länge der Texte aus) usw. - so wird systematisch gedebugged. Und ganz ganz wichtig: mach diese elenden '@' zur Unterdrückung von Fehlermeldungen aus dem Programm - sie verhindern lediglich, dass Du Fehler findest!


2.

ändere doch mal
Code:                   In Zwischenablage kopieren (nur IE)
1">

in
Code:                   In Zwischenablage kopieren (nur IE)
2">




3.

Danke @b33blebr0x (Schwerer Nickname *g) - Hat geklappt!

Sehr schön, alles geht nun prima =)


4.

Entschuldigt bitte, dass ich einen Doppelpoast mache,
da der Beitrag allerdings im Laufe des Tages auf Seite Zwei gefallen ist,
würde ein EDIT-Post leider wenig bringen.

Meine Frage an euch ist "theoretisch", nämlich folgende:

Woran erkenne ich, wann ich es so schreiben muss

Code:                   In Zwischenablage kopieren (nur IE)
3">



und wann eben mit row?

Code:                   In Zwischenablage kopieren (nur IE)
4">



Denn alles andere außer die News musste ich ja mit $row ausgeben,
aber dann plötzlich die News ohne dass?! Wie kommt dies, verwirrt mich immer wieder!

Danke schonmal für eure Tipps ;)


5.

wenn du $Newstext mit dem wert $row["Newstext"] belegst, dann musst du nachher auch $Newstext ausgeben, weil du ja sonst alle "funktionen" die du auf $Newstext angewandt hast nicht ausgeben würdest, weil ja dann in $row["Newstext"] immer noch das drinnen steht, was er aus der datenbank ausliest.


6.

Wodurch habe ich denn in diesem Fall $Newstext mit dem Wert von $row["Newstext"] belegt?

Damit -> $Newstext = nl2br($row["Newstext"]); ???


7.

ja


8.

Nach langer Zeit belebe ich diesen Thread mal wieder,
weil ich leider ein Problem habe, bei der Ausgabe von diversen Sachen ...

Um genau zu sein, wird im folgenden nur $Newstext ausgegeben, $Bild, $ Newstitel und Co bleiben "verschwunden",
wieso?

[PHP]
@mysql_connect("localhost", "----", "-----") or die("Verbindung zur Datenbank gescheitert");
@mysql_select_db("-----") or die("Datenbankzugriff verweigert");
if (isset($_GET["id"])) {
$sql = "SELECT * FROM Ekstraklasa_News WHERE id=$_GET[id]";
$result = mysql_query($sql);
while ($row = @mysql_fetch_assoc($result))
$Newstext = nl2br($row["Newstext"]);
echo '<table width="695">
<tr>
<td width="150" rowspan="2">'.$row ['Bild'].'</td>
<td width="533" class="newstitel">'.$row['Newstitel'].'</td>
</tr>
<tr>
<td class="newstext">'. $Newstext .'</td>
</tr>
</table>';
echo "[ <a href='javascript:history.back()'>Zurück</a> ]";
[/PHP]


9.

Code:                   In Zwischenablage kopieren (nur IE)
5">




10.

Argh ... stimmt, Danke für die Fehlerbeseitigung! =)


Hier gehts zum Orginal Eintrag "Newsbeiträge - Kürzen / Funktion bzw. Problem" im Forum
 
phpforum.de | Impressum