php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.05.2005, 02:11  
TRW
Erfahrener Benutzer
 
Registriert seit: 20.10.2004
Beiträge: 759
TRW
Standard Textteil ausgeben

Hallo,

habe folgendes und kleines Problem:
In meiner DB habe ich einen Text gespeichert.
Davon will ich aber z.B. nur die ersten 100 Buchstaben ausgeben.
Bisher habe ich einfach nur die Datensätze ermittelt und ausgelesen. Dann wird aber der ganze Datensatz ausgegeben.
PHP-Code:
<?php
 $db
=mysql_connect("localhost","root","xxx");
 
mysql_select_db("datenbank");
 
$anfrage="SELECT * FROM tabelle";
 
$ergebnis=mysql_query($anfrage);
 
$anz=mysql_num_rows($ergebnis);
  for (
$a=$anz-1;$a>-1$a--) {
   
mysql_data_seek ($ergebnis$a);
   
$zeile=mysql_fetch_row($ergebnis);
       
ausgabe ($zeile);
      }    
 
mysql_close($db);

function 
ausgabe($datensatz) {    
  print (
$datensatz[3]);
}
?>
So siehts zurzeit aus ...
Auf der index.php steht der Textteil der am Ende den Link 'mehr ...' enthält (wird mittels Beitrags ID realisiert):
PHP-Code:
<?php
  
print (" <a href='read.php?beitrags_id=");
  print (
$datensatz[0]);
  print (
"'>");
  print (
"mehr...");
  print (
"</a>");
?>
'mehr...' verweist dann auf read.php. Dort wird dann der ganze Text ausgegeben.
Wie kann ich das hinbekommen?

Die ersten x Buchstaben (Textteil) eines Textes (Datensatz) ausgeben

Bin ja nochn ziemlicher Anfänger, daher hoffe ich mal dass es leicht zu lösen ist :wink:
thx für Hilfe
mfG

Edit: Muss dazu sagen, dass Google und die Suche nichts hergeben und ich nicht weiß mit welchem Stichwort ich im Handbuch suchen soll.
TRW ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.05.2005, 02:33  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

kaum zu glauben, dass du tatsaechlich substring() nich kennst...

http://dev.mysql.com/doc/mysql/de/string-functions.html

http://de3.php.net/substr
__________________
Was ist validität?
fantast ist offline  
Alt 01.05.2005, 02:35  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

substr($datensatz[0], 0, 100)

Damit sollten die ersten 100 Zeichen ermittelt werden.

Was machst Du denn da eigentlich für abartiges Zeugs?
1. error_reporting(E_ALL); an den Anfang des Scripts.
2. Nicht SELECT * verwenden, sondern nur die Spalten auslesen, die man braucht.
3. mysql_data_seek() weglassen. Wenn Du unbedingt die Einträge rückwärts auslesen willst, dann lass das von MySQL erledigen. Stichwort: "SELECT ... FROM ... ORDER BY ... DESC"
4. $datensatz[0] bzw. [3] ist gefährlich. Bei einem neuen Tabellenlayout könnte die Reihenfolge der Spalten anders sein. Nimm lieber den Namen der Spalte ($datensatz['spaltenname'])

Das war jetzt evtl. knapp, aber es sollten Hinweise drin sein, mit denen man evtl. auch die Suche hier füttern kann. Nach dem nächsten Kaffee sind wieder ausführliche Antworten möglich.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 01.05.2005, 03:17  
TRW
Erfahrener Benutzer
 
Registriert seit: 20.10.2004
Beiträge: 759
TRW
Standard

@fantast Tust so als ob das jeder kennen muss... wie gesagt ich arbeite sehr selten mit PHP. HTML und CSS sagen mir da schon viel mehr...^^

@Der_Gerhard
1. Das muss ich mir im Handbuch nochmal durchlesen.
2. Ich brauche ja alle Spalten ... (?)
3. Das ganze Script stammt aus 'PHP - Webseiten dynamisch programmieren'. Daher dachte ich das es so schon richtig sein wird ... Aber deinen Vorschlag werd ich mir mal näher anschauen.
4. Es wird weder ein neues Tabellenlayout noch eine andere Reihenfolge der Spalten geben.

Habe auch erst heute damit angefangen ...
Trotzdem danke.
TRW ist offline  
Alt 01.05.2005, 13:10  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

2. Siehe 4.
3. Das bedeutet gar nichts. Vielleicht soll es ein Beispiel sein, welche tollen MySQL-Funktionen vorhanden sind. Es sieht nach sehr viel Overhead aus.
4. Auch dann würde durch verwendung von Spaltennamen mehr Klarheit erreicht werden. Wenn du meinst, dass sich wirklich nie was ändern wird, dann bitte schön. Es ist Deine Entscheidung, den Code vollkommen statisch und schwer erweiterbar zu gestalten. Schwer wartbar ist er damit natürlich auch. Ist aber nicht mein Problem.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 01.05.2005, 19:04  
Gast
 
Beiträge: n/a
Standard

Ähm, sorry, wenn ich das mal so klar und deutlich sage, aber das ist mit Abstand das bescheuertste script, das ich je gesehen habe. In welchem Tutorial findet man so einen Schrott?

Und zum Thema "Select *" bitte mal in Ruhe lesen und versuchen zu verstehen:

16.14. Warum soll ich nicht SELECT * schreiben?
http://www.php-faq.de/q/q-sql-select.html

Gruß
phpfan
 
Alt 01.05.2005, 19:07  
Gast
 
Beiträge: n/a
Standard

Beschissenes Script!

100 Zeichen:
http://de3.php.net/substr
 
Alt 01.05.2005, 19:14  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Leute, er hat doch in seiner Antwort auf meinen Beitrag schon gestanden wo der Mist herkommt:

Zitat:
3. Das ganze Script stammt aus PHP - Webseiten dynamisch programmieren'. Daher dachte ich das es so schon richtig sein wird ... Aber deinen Vorschlag werd ich mir mal näher anschauen
Wenn man jetzt noch den Autor dieses Buches kenne würde, wüsste man, wo man ein paar Lobreden und Danksagungen hinschicken könnte.
Der_Gerhard ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
verschachtelte Rubriken ausgeben / alle anzeigen prinzli PHP Tipps 2008 3 25.02.2008 22:37
Es werden zuviel Daten ausgeben Kein Genie PHP Tipps 2006 5 12.11.2006 12:37
[Erledigt] Datensätze blockweise nacheinander ausgeben?? Datenbanken 6 13.03.2006 14:22
Spaltennamen ausgeben PHP Tipps 2005-2 13 26.10.2005 12:39
Höchste IP ausgeben krummzahn PHP Tipps 2005-2 9 17.10.2005 00:16
Codeschnipsel nur bei bestimmten Stylesheet ausgeben PHP Tipps 2005-2 2 24.07.2005 11:53
HTML - Datei ausgeben PHP Tipps 2005 5 19.02.2005 16:58
Funktion ausgeben PHP Tipps 2005 8 10.01.2005 17:18
Wie DB-Ergebniss in html-Tabelle ausgeben ? PHP Tipps 2004-2 2 31.12.2004 18:04
Strings Teilweise ausgeben PHP Tipps 2004-2 8 09.12.2004 13:18
[Erledigt] Array ausgeben PHP Tipps 2004-2 4 05.12.2004 00:53
Bestimmte Datenbank Felder nur einmal ausgeben Paulo PHP Tipps 2004-2 3 26.11.2004 16:39
[Erledigt] Ganze Tabelle ausgeben PHP Tipps 2004-2 1 21.11.2004 16:48
In GIF-Datei Datum und Uhrzeit ausgeben? PHP Tipps 2004-2 6 20.11.2004 18:03
datenbank: gleiche zeileninhalte nur 1 mal ausgeben PHP Tipps 2004 1 16.10.2004 20:23

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql bestimmten textteil ausgeben, bestimmten textteil ausgeben, php textteil ausgeben, mysql textteil, php textteil suchen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.