Sistema de votação – PHP e Mysql

Estou tentando escrever um roteiro para votar em um filme, baseado no sistema “Like / dislike” de FB. Eu criei uma página php onde o script mostra a lista dos filmes mais apreciados, tirando os dados da tabela “votos” e com um “enquanto” eu os selecionaria da tabela “filmes”, mas eu tenho um problema: a saída HTML mostra apenas um filme (o filme com o ID mais elevado), e os outros filmes com voto não são mostrados.
O código do script é:

if ($_GET['top_rated'] == 'show') { $vote= 1; //vote positive(like) $sql = $pdo->prepare("SELECT * FROM votes WHERE vote= :vote GROUP BY film_id"); $swl->bindParam(":vote", $vote) $sql->execute(); while ($vote_info = $sql->fetch(PDO::FETCH_ASSOC)) { $film_id = $vote_info['film_id']; $result = $pdo->prepare("SELECT * FROM films WHERE id= :film_id"); $result->bindParam(":film_id", $film_id); $result->execute(); } } while ($film_info = $result->fetch(PDO::FETCH_ASSOC)) { $genre_id = $film_info['genre_id']; $sql = $pdo->prepare("SELECT * FROM genres WHERE id=:genre_id"); $sql->bindParam(":genre_id", $genre_id); $sql->execute(); $genre_info = $sql->fetch(PDO::FETCH_ASSOC); ?> 
<img class="poster" src="https://stackoverflow.com/questions/24224301/vote-system-php-mysql/">
Title:
Year:
Genre:

O mapa do database é:

 my_database: films->id/film_name/film_year/genre_id genres->id/genre_name votes->id/film_id/vote 

Desde já, obrigado!

Isso porque o seu código que exibe o filme é executado uma vez!

Você deve usar algum tipo de loop para imprimir vários itens. Minha sugestão é mudar

 while ($film_info = $result->fetch(PDO::FETCH_ASSOC)) { $genre_id = $film_info['genre_id']; $sql = $pdo->prepare("SELECT * FROM genres WHERE id=:genre_id"); $sql->bindParam(":genre_id", $genre_id); $sql->execute(); $genre_info = $sql->fetch(PDO::FETCH_ASSOC); ?> 
Title:
Year:
Genre:

para o seguinte

 ?> 
fetch(PDO::FETCH_ASSOC)) { $genre_id = $film_info['genre_id']; $sql = $pdo->prepare("SELECT * FROM genres WHERE id=:genre_id"); $sql->bindParam(":genre_id", $genre_id); $sql->execute(); $genre_info = $sql->fetch(PDO::FETCH_ASSOC); //print the details at each loop! //this should work if you have multiple items match your query... echo "Title: $film_info['film_name']
Year: $film_info['film_year']
Genre: $genre_info['genre_name']"; ?>

Experimente e relate o que você descobre!