Problema com while

Olá, estou trabalhando em um sistema de livros online e tive um problema que acredito ser no while do meu código ou até mesmo no banco.
A intenção é pegar todos os capítulos com o nome da história x e trazer as informações para a tela. Eu fiz e funcionou, mas apesar de ter mais de um capítulo cadastrado no banco, ele retorna apenas um.

<?php

$nm_historia = $rows_historia['Nome'];
$result_capitulo= "SELECT * FROM vw_capitulo WHERE nm_historia='$nm_historia'";
$resultado_capitulo = mysql_query($result_capitulo);
if (false === $resultado_capitulo) {
  echo mysql_error();
}
$rows_capitulo = mysql_fetch_assoc($resultado_capitulo);
?>
<?php while($rows_capitulo = mysql_fetch_assoc($resultado_capitulo)){ ?>
    <div id="cap<?php $rows_capitulo['numero_cap'];?>" class="tab-pane fade">

   <center><img src="<?php echo $rows_historia['capaup'];?>" border="0" class="capaup"</a></center>
      <center><h1><?php echo $rows_capitulo['nm_cap']; ?> </h1></center> <br>
          <blockquote> <blockquote>
    <p> <?php echo $rows_capitulo['ds_cap']; ?> </p>        

    <br>
    <br>
        </div>

      </div>
    </div><?php }?>

Altere para

$result_capitulo= "SELECT * FROM vw_capitulo WHERE nm_historia='$nm_historia'";
$resultado_capitulo = mysql_query($result_capitulo);
$rows = mysql_num_rows($resultado_capitulo);

E verifique quantos registros foram retornados, utilizando a variável $rows

Retornam dois capítulos repetidos