ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
839
839
EMPFEHLEN
-
23.04.06 23:43 #1noctaru Tutorials.de Gastzugang
Also ich habe Texte in einer Dattenbank. Nun möchte ich auf einer Seite eine Vorschau erstellen. Jedoch sollen nur die ersten 20 Wörter ausgegeben werden und dann ein "..." angehängt werden. Sobald auf den Link geklickt wird, soll der ganze Text ausgegeben werden. Dies geht warscheinlich am besten über die URL.
Die Frage ist nun, wie stelle ich es am besten an, dass...
1. ...nur die 20 Wörter ausgegeben werden.
2. ...bei einem Klick der ganze Text ausgegeben wird.
Für das ganze darf nur eine Datei verwendet werden.
-
Die Abfrage dafür ist einfach:
Code :1 2 3 4
SELECT CONCAT(SUBSTRING_INDEX(`spalte`, ' ', 20), ' …') AS `auszug` FROM `tabelle`
Markus Wulftange
-
24.04.06 00:02 #3noctaru Tutorials.de Gastzugang
Mh.. irgendwie bekomme ich des jetzt nicht so ganz hin.
Also ich habe in der DB die Spalte: id, name, topic, sortid, amendment.
Die Ausgabe soll mit der "sortid" sortiert werden.
Ausgegeben werden die dann in einer "while"schleife.
Aber wie muss jetzt der querry lauten, dass die anderen auch mit ausgegeben werden?PHP-Code:while($row = mysql_fetch_object($erg)){
$id = $row->id;
$name = $row->name;
$text = $row->topic;
$sortid = $row->sortid;
....
PS:. die db heißt "site".
-
24.04.06 00:51 #4noctaru Tutorials.de Gastzugang
Jetzt dachte ich schon ich hätte es geschaft, da fällt mir auf, dass "..." auch bei den Datensätzen kommt, wo weniger wie 20 Wörter sind. Wie schaffe ich es, dass diese Datensätze ohne "..." ausgegeben werden?
Geändert von noctaru (24.04.06 um 02:19 Uhr)
-
In dem Fall müsstest du vorher die Anzahl der Wörter zählen:
Code :1 2 3 4 5 6 7
SELECT IF( REPLACE(`amendment`, ' ', ' ') > 20, CONCAT(SUBSTRING_INDEX(`spalte`, ' ', 20), ' …'), `amendment` ) AS `auszug` FROM `sites`
Markus Wulftange
-
24.04.06 11:52 #6noctaru Tutorials.de Gastzugang
Ich hab des jetzt mal angepasst, funktioniert aber irgendwie nicht.
Es wird irgendwie alles ausgegeben. Wo ist der Fehler?
PHP-Code:$query = "SELECT
IF( REPLACE(`topic`, ' ', ' ') > 20,
CONCAT(SUBSTRING_INDEX(`topic`, ' ', 20), ' …'),
`topic`
) AS `topic`, `id`, `name`, `sortid` FROM `site`";
-
Also ich habe gerade das gleiche Problem.
Ich habe mal in der Dukumentation von MySQL nachgeschaut, und dort steht nicht, dass REPLACE die Anzahl der gefundenen Stellen zurückgibt...
(http://dev.mysql.com/doc/refman/5.0/...functions.html)
Gibt es dafür einen anderen Befehl?
Ähnliche Themen
-
In einem String die ersten X Zeichen entfernen - dabei NICHT Wörter zerstören
Von Kristian im Forum PHPAntworten: 2Letzter Beitrag: 30.09.09, 19:31 -
Wörter zählen & ausgeben
Von maxikey im Forum PHPAntworten: 4Letzter Beitrag: 15.07.08, 19:32 -
[mysql] Nur die ersten 10 Wörter einer Zelle ausgeben
Von Stephan Liebig im Forum Relationale DatenbanksystemeAntworten: 7Letzter Beitrag: 04.10.06, 23:05 -
Die ersten Wörter eines Absatzes anzeigen
Von Newcomer1 im Forum PHPAntworten: 3Letzter Beitrag: 20.09.05, 11:26 -
Wörter per Zufall ausgeben
Von dom123 im Forum PHPAntworten: 4Letzter Beitrag: 12.08.05, 07:29





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren