Estoy teniendo un problema tonto con una parte del codigo.
Veamos,...los videos (ya sea en la pagina principal o en una categoria) aparecen haciendo fetch_array de la base de datos asi:
Código:
$ultimos= "SELECT Titulo, Autor, Duracion, Imagen, URL FROM Multimedia ORDER BY ID DESC LIMIT 20";
$resultado= mysql_query($ultimos, $conectar);
$num_rows = mysql_num_rows($resultado);
echo("
<table width='73%' height='207' border='0' align='center' cellpadding='18'>");
$columns = 4;
for($i = 0; $i < $num_rows; $i++) {
$row = mysql_fetch_array($resultado);
if($i % $columns == 0) {
//SI NO HAY RESTO SIGNIFICA QUE INICIAMOS UNA NUEVA FILA
echo "<tr>\n";
}
echo "<td width='130'><a href='video.php?v=".$row['Titulo']."'><img src='".$row['Imagen']."' width='130' height='100' /></a>
<br /><a href='video.php?v=".$row['Titulo']."'>".$row['Titulo']."</a> <br />".$row['Duracion']." </td>\n";
if(($i % $columns) == ($columns - 1) || ($i + 1) == $num_rows) {
//SI EL RESTO ES UNO
//O SI NO HAY NADA MAS A LA IZQUIERDA
//ES EL FINAL DE LA TABLA
echo "</tr>\n";
}
}
echo "</table>\n";
Como se ve, se muestran los resultados en una tabla, limitada a 4 columnas.
El problema es que el titulo del video deforma el ancho de la tabla y queria cortar el titulo en X caracteres y añadir puntos suspensivos.
Para eso tengo dos codigos:
Código:
<?php
function cut_string($string, $charlimit)
{
if(substr($string,$charlimit-1,1) != ' ')
{
$string = substr($string,'0',$charlimit);
$array = explode(' ',$string);
array_pop($array);
$new_string = implode(' ',$array);
return $new_string.' ...';
}
else
{
return substr($string,'0',$charlimit-1).' ...';
}
}
//llamada a la funcion
echo cut_string($cadena, 12);
?>
O este otro:
Código:
echo substr($texto, 0, 12)."...";
Pero me parece que con la funcion fetch_array no funciona, ya que lo pruebo y no hace absolutamente nada, de hecho me imprime el codigo tal cual como si de texto se tratase...
Alguna idea u otra forma de hacerlo??