Esto me funcionó perfectamente. La diferencia está en mysql_field_len en vez de lo que estás usando:
Código PHP:
<table>
<?php
$servidor='localhost';
$usuario='root';
$clave='';
$base='base';
$tabla='tabla';
mysql_connect($servidor,$usuario,$clave) or die(mysql_error());
mysql_select_db($base);
$fields=mysql_query("select * from $tabla");
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++) {
?>
<tr>
<td><? echo mysql_field_name($fields, $i); ?></td>
<td><? echo mysql_field_type($fields, $i) ; ?></td>
<td><? echo mysql_field_len($fields,$i); ?></td>
<td><? $flags = mysql_field_flags($fields, 0);
echo $flags;
?></td>
</tr>
<?php
}
?>
</table>