Entwickler-Ecke
Datenbanken - Ausgabe des Spalteninhalts begrenzen
Gerhard_S - Di 27.11.12 20:54
Titel: Ausgabe des Spalteninhalts begrenzen
Ich habe eine Suchmaschine (orcasearch) installiert, die sämtliche Seiten einer Internet-Präsenz im Volltext in einer MySQL-Datenbank speichert. Um die zuletzt aktualisierten 15 Seiten herauszufinden, benutze ich diese Abfrage:
Quelltext
1:
| SELECT uri, body, `sm.lastmod` FROM $tabelle WHERE uri NOT LIKE '%pfs%' ORDER BY `sm.lastmod` DESC LIMIT 15 |
Die Ausgabe der "body"-Spalte (Typ "longtext") würde ich gern begrenzen:
a) beginnen ab Zeichen 150
b) enden mit Zeichen 200
Ist das mit MySQL möglich oder geht das nur mit PHP?
Gerhard_S - Di 27.11.12 22:56
Danke für den Hinweis auf die Substring-Funktion.
Trotzdem fehlt mir noch etwas Wissen:
die Abfrage
Quelltext
1:
| SELECT uri, SUBSTRING(body,150,50), `sm.lastmod` FROM $tabelle WHERE uri NOT LIKE '%pfs%' ORDER BY `sm.lastmod` DESC LIMIT 15 |
funktioniert; nur die Ausgabe nicht. Die Ausgabe ist eine zeilenweise Schleife über die Spalten der Tabelle:
Quelltext
1: 2:
| $abfrage ="SELECT uri, SUBSTRING(body,150,50), `sm.lastmod` FROM $tabelle WHERE uri NOT LIKE '%pfs%' ORDER BY `sm.lastmod` DESC LIMIT 15"; $ergebnis = mysql_query($abfrage); |
und dann in einer HTML-Tabelle:
Quelltext
1: 2: 3: 4: 5: 6:
| while ($row = mysql_fetch_assoc($ergebnis)) { $dasdatum = date("d.m.Y - H:i:s", $row['sm.lastmod']); $dieuri = $row['uri']; $cont = $row['body']; echo "<tr><td>" . " <a href=\"" .$dieuri. "\">". $dieuri."</a>". "</td>" . "<td>" . $dasdatum . "</td>" . "<td>" .$cont . "</td</tr>"; } |
bleibt die Ausgabe für die $cont-Variable leer.
Moderiert von
Narses: Beiträge zusammengefasstNach etwas Suchen habe ich die Lösung gefunden:
1. Die SQL-Abfrage muss die Einschränkung enthalten
Quelltext
1:
| SELECT uri, SUBSTRING(body,5,5) ... |
und auch die Definition der PHP-Variable:
Quelltext
1:
| $cont = $row['SUBSTRING(body,5,5)']; |
WasWeißDennIch - Mi 28.11.12 09:17
Ich würde einen Feldalias verwenden.
SQL-Anweisung
1:
| SELECT uri, SUBSTRING(body,150,50) AS contpart, ... |
Dann kannst Du den später wie ein "normales" Feld ansprechen.
PHP-Quelltext
1:
| $cont = $row['contpart']; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!