Hola qué tal,
 
bueno he estado mirando esto y no cuadro por ningún lado. Seguramente me expliqué mal, y dí pocos detalles sobre el tema. Agradezco a 
DeeR y a 
gerson por sus comentarios. 
Gerson pues claro que me gustaría mostrar las filas que haga falta; mejor dicho las que contenga la base de datos. Y a 
Deer me parece correcta su función aunque imagínate que alguna de mis categorías tuviese 126 registros que mostrar; me volvería loco con los 
$array.  
Voy a mostrar los detalles de todo esto más o menos -
alguna cosa me habré dejado en copiar y pegar o escribir- o quizá alguna $variable haya cambiado de nombre debido a las modificaciones que he hecho.   
Empezamos 
Todo esto cuenta con tres secuencias de comandos de catálogo: la página principal, la página de categorías y la página de detalles de películas.
Al acceder a la página principal se enumeran todas las categorías de la base de datos.  
 Código PHP:
    <?
  include ('funciones.php');
 
  do_html_header("Bienvenido a mis Películas");
 
  echo "<p>Elije una categoría:</p>";
 
  // recuperar categorías de la base de datos
  $cat_array = get_categories();
 
  // mostrar como enlaces a las páginas de las categorías
  display_categories($cat_array);
 
  do_html_footer();
?>    
  La función 
get_categories() devuelve una matriz de las categorías del sistema que, tras ello, se pasa a 
display_categories().  
 Código PHP:
    function get_categories()
{
   // Petición a la base de datos de una lista de categorías
   $conn = db_connect();
   $query = "select catid, catname
             from categories";
   $result = @mysql_query($query);
   if (!$result)
     return false;
   $num_cats = @mysql_num_rows($result);
   if ($num_cats ==0)
      return false;
   $result = db_result_to_array($result);
   return $result;
} 
    
  Como se puede comprobar, esta función se conecta a la base de datos y recupera una lista de todos los 
Id. y nombres de categoría. Hemos escrito y utilizado una función denominada 
db_result_to_array()La función adopta un identificador de resultados MySQL y devuelve una matriz de errores indexada numéricamente en la que cada fila es una matriz asociativa.  
 Código PHP:
    function db_result_to_array($result)
{
   $res_array = array();
 
   for ($count=0; $row = @mysql_fetch_array($result); $count++)
     $res_array[$count] = $row;
 
   return $res_array;
} 
    
  En nuestro caso, devolvemos esta matriz de nuevo a 
index.php donde la pasaremos a la función 
display_categories()
Esta función muestra cada categoría en forma de enlace a una página que contiene las peliculas de dicha categoría.  
 Código PHP:
    function display_categories($cat_array)
{
  if (!is_array($cat_array))
  {
     echo "No hay categorías actualmente disponibles<br>";
     return;
  }
  echo "<ul>";
  foreach ($cat_array as $row)
  {
    $url = "veure_categoria.php?catid=".($row["catid"]);
    $title = $row["catname"];
    echo "<li>";
    do_html_url($url, $title);
  }
  echo "</ul>";
  echo "<hr>";
} 
    
  Esta función convierte cada una de las categorías de la base de datos en enlaces. Todos los enlaces llevan a la siguiente secuencia de comandos, veure_categoria.php pero cada uno tiene un parámetro distinto, el 
Id de la categoría o 
catid (se trata de un número exclusivo generado por MySQL y que utilizamos para identificar la categoría).
Este parámetro a la siguiente secuencia de comandos determinará en qué categoría nos encontramos. 
El proceso para enumerar películas de una categoría es muy similar. La secuencia de comandos encargada de ello es veure_categoria.php.   
 Código PHP:
   
 <?php
  include ('funciones.php');
  $catid = $_GET['catid'];
  $name = get_category_name($catid);
 
  do_html_header($name);
 
  // obtener información de la película de la base de datos
  $book_array = get_books($catid);
 
  display_books($book_array);
   do_html_footer();
?>    
  Esta secuencia tiene una estructura similar a la de la página de índice, a excepción de que recupera películas en lugar de categorías. Convertimos el 
Id. de categoría que hemos obtenido en un nombre de categoría por medio de la función get_category_name().  
 Código PHP:
    function get_category_name($catid)
{
   // consulta la bd para obtener el nombre de un Id. de categoría
   $conn = db_connect();
   $query = "select catname
             from categories 
             where catid = $catid"; 
   $result = @$conn->query($query);
   if (!$result)
     return false;
   $num_cats = @$result->num_rows;
   if ($num_cats ==0)
      return false;  
   $row = $result->fetch_object();
   return $row->catname; 
} 
    
  Una vez recuperado el nombre de la categoría, podemos representar un encabezado HTML y proceder a recuperar y enumerar las películas de la base de datos que se corresponden con la categoría seleccionada.  
 Código PHP:
    $pelicules_array = get_pelicules($catid);
veure_pelicules($pelicules_array); 
    
  Las funciones get_pelicules() y veure_pelicules() son muy similares a las funciones get_categories() y veure_categories() la única diferencia es que estamos recuperando información de la tabla de películas en lugar de la de categorías. La función veure_pelicules() proporciona un enlace a todas las películas de una categoría por medio de la secuencia de comandos veure_pelicules.php. De nuevo, a cada enlace se le añade un parámetro como sufijo. En esta ocasión es la ref (referencia) de la película en cuestión.  
 Código PHP:
    <?php
  include ('funciones.php');
 
  $ref = $_GET['ref'];
 
  // obtén esta película de la base de datos
  $pelicules = get_pelicules_detalls($ref);
  do_html_header($pelicules['titulo']);
  veure_pelicules_detalls($pelicules);
 
  // define un URL para el “botón de continuación”
  $target = 'index.php';
  if($pelicules['catid'])
  {
    $target = 'veure_categories.php?catid='.$pelicules['catid'];
  }
  
  do_html_footer();
?>    
  Esto realiza el mismo tipo de acciones de antes.  Utilizamos  
 Código PHP:
    $pelicules = get_pelicules_detalls($ref); 
    
  Para obtener de la base de datos la información de la película
Y  
 Código PHP:
    veure_pelicules_detalls($pelicules); 
    
  para representar los datos en HTML. Mencionar que 
veure_pelicules_detalls() busca un archivo de imagen para la pelicula como 
imatges/$ref.jpg. Si no existe, no muestra ninguna imagen. El resto de la secuencia configura la navegación.  
 Código PHP:
    function veure_pelicules_detalls($pelicules)
{
  // todos los detalles de la pelicula
  if (is_array($pelicules))
  {
    echo '<table><tr>'; 
    //Imagen 
    if (@file_exists('imatges/'.($pelicules['ref']).'.jpg'))
    {
      $size = GetImageSize('imatges/'.$pelicules['ref'].'.jpg');
      if($size[0]>0 && $size[1]>0)
        echo '<td><img src=\'imatges/'.$pelicules['ref'].'.jpg\' border=0 '.$size[3].'></td>';
    }
    echo '<td><ul>';
    echo '<li><b> Director:</b> ';
    echo $pelicula['director'];
    echo '</li><li><b> REF:</b> ';
    echo $pelicula['ref'];
    echo '</li><li><b>Descripcion:</b> ';
    echo $pelicula['descripcion'];
    echo '</li></ul></td></tr></table>'; 
  }
  else
    echo 'No hay detalles de la película en estos momentos.';
  echo '<hr />';
} 
    
  AQUÍ FORMULARIOS Y DEMÁS   Código PHP:
   
function veure_categoria_formulari($cat_array = "")
// Esto muestra el formulario de categoría.(Ejem: Terror, Erótico, Humor)
// Este formulario puede ser usado para insertar o editar categorías.
// Para insertar, no pasar ningún parámetro. Esto configurará $editar
// como falso, y el formulario irá a insertar_categoria.php.
// Para actualizar, pasa un array conteniendo una categoría.  El
// formulario contendrá los viejos datos y  apuntará a actualitzar_categoria.php.
// También añadirá un botón "Borrar categoría" .
 
{
 
  // si se pasa una categoría existente, proceder en "modo edición"
  $editar = is_array($cat_array);
 
  // la mayoría del formulario esta en HTML plano con algún
  // trozo opcional de PHP por todo.
 
?>
  <form method=post
      action="<?=$editar?"editar_categoria.php":"insertar_categoria.php";?>">
  <table border=0>
  <tr>
    <td>Nom Categoría:</td>
    <td><input type=text name=catname size=40 maxlength=40
          value="<?=$editar?$categoria["catname"]:""; ?>"></td>
   </tr>
  <tr>
    <td <? if (!$editar) echo "colspan=2"; ?> align=center>
      <? if ($editar)
         echo "<input type=hidden name=catid
                value=\"".$categoria["catid"]."\">";
      ?>
      <input type=submit
       value="<?=$editar?"Actualizar":"Añadir"; ?> Categoría"></form>
     </td>
     <? if ($editar)
       // permitir borrar categorías existentes
       {
          echo "<td>";
          echo "<form method=post action=\"borrar_categoria.php\">";
          echo "<input type=hidden name=catid value=\"".$categoria[catid]."\">";
          echo "<input type=submit value=\"Borrar Categoría\">";
          echo "</form></td>";
       }
     ?>
  </tr>
  </table>
<?
}    
  CONTINÚA