in the bit of code i posted earlier, it has an if block that determines if the ... should be added on to the end or not:
<?
if (strlen($dvdName) > 30) {
$dvdName= substr($dvdName, 0, 27) . "...";
}
print("<td width='110' bgcolor='$row_color' nowrap>$dvdName</td>"

;
?>
in the first line, you can change 30 to a different number to suit your needs (depending on what the maximum length you need is)
to cut it off at the nearest last word, you can do this instead: (though it may be buggy, i am just writing it off the top of my head)
<?
if (strlen($dvdName) > 30) {
$dvdName = substr($dvdName, 0, 30);
$strEnd = strripos($dvdName, " "

;
$dvdName = substr($dvdName, 0, $strEnd) . "...";
}
print("<td width='110' bgcolor='$row_color' nowrap>$dvdName</td>"

;
?>
hopefully, what is happening here is that if the variable $dvdName length is greater than 30, it is chopped to just 30 characters, then the last occurance of the space character is found and it is chopped again at that location and the ... is added to the end.