Anzahl der Zeichen begrenzen mit strlen - Fehler?

Zocker4Life

Well-known member
ID: 126615
L
10 Juni 2006
816
35
Ich möcht die Anzahl der Zeichen begrenzen, welche ich per mysql abfrage und dann ausgebe.

Hier ist der Originalcode
<?
include('config/db_con.php');
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$top = "SELECT * FROM `like` ORDER BY count DESC LIMIT 0, 5";
$new = mysql_query($top) or die(mysql_error());
while($rows = mysql_fetch_array($new)){
?>


<br>
<div style="clear:left;"><center><img src="images/bg.gif"></center><br>
<span style="font-size:12pt;font-family:arial;"><a href="<? echo $site;?>like.php?like=<? echo $rows['id']; ?>"><? echo stripslashes($rows['like']);?></a><br>
</div>

Für die Abfrage habe ich benutzt:
<? if (strlen $rows['like'] >= 30) { $rows['like'] = substr($rows['like'],0, 30) . "..."; } ?>

Damit werden zwar die Wörter abgeschnitten, aber das ist nicht schlimm.
Nur klappt das ganze nicht so wie gewünscht.
Muss ich statt dem $rows['like'] -> $news verwenden? Dann erscheint allerdings gar nichts.
 
Was mir auf den ersten Blick auffällt:

PHP:
...
mysql_fetch_array($new)
...

Hast aber assoziatives array ausgeben wollen.

PHP:
...
$rows['like']
...
 
@ Zocker4life = Gehts nur mir so oder versteht Ihr was er genau will? Ich lese nur "nur klappt das nicht wie gewünscht". Wie soll es denn sein und was passiert akt?
 
PHP:
<? if (strlen $rows['like'] >= 30) { $rows['like'] = substr($rows['like'],0, 30) . "..."; } ?>

Da sticht mir sofort ins Auge, dass du bei strlen nicht die Funktionsklammern vergessen darfst! Das ist immerhin eine Funktion und somit gehören die Klammern dazu.. 8)