<html>
<head>
   <title>base de dados de filmes</title>
</head>
<body>
    
<?php

include 'db.inc';
include 'error.inc';

function displayActores($result)
{
  $nrows  = pg_num_rows($result);
  if( $nrows > 0 ) {
    printf("<ul>\n");
    for($i=0; $i<$nrows; $i++) {
      $actor = pg_result($result,$i,0);
      $linkActor = "filmes.php?nomeActor=".rawurlencode($actor);
      echo "<li><a href=\"$linkActor\">$actor</a></li>\n";  
    }
    printf("</ul>\n");
  }
}

function displayFilmes($result)
{
  $nrows  = pg_num_rows($result);
  if( $nrows > 0 ) {
    printf("<ul>\n");
    for($i=0; $i<$nrows; $i++) {
      $filme = pg_result($result,$i,0);
      $ano   = pg_result($result,$i,1);
      $linkFilme = "filmes.php?nomeFilme=" . rawurlencode($filme) . "&amp;anoFilme=$ano";
      echo "<li><a href=\"$linkFilme\">$filme ($ano)</a></li>\n";  
    }
    printf("</ul>\n");
  }
}

$nomeFilme = $_GET["nomeFilme"];
$anoFilme  = $_GET["anoFilme"];
$nomeActor = $_GET["nomeActor"];

// ligação à base de dados
$db = dbconnect($connection_string);  
if($db) {
  if(isset($nomeFilme) && isset($anoFilme)) {
    //
    // mostra actores que participaram em determinado filme
    //
    $query = "SELECT nomeActor FROM participa
              WHERE nomeFilme = '$nomeFilme'
                AND anoFilme = $anoFilme";
    if(!($result = @ pg_query($db, $query )))
      showerror($db);
    
    echo "<h1>$nomeFilme ($anoFilme)</h1>";
    displayActores($result);
  }

  elseif(isset($nomeActor)) {
    //
    // mostra filmes em que um determinado actor participou
    //
    $query = "SELECT nomeFilme, anoFilme FROM participa
              WHERE nomeActor = '$nomeActor'";
    if(!($result = @ pg_query($db, $query )))
      showerror($db);
    
    echo "<h1>$nomeActor</h1>";
    displayFilmes($result);
  }

  else {
    //
    // mostra todos os filmes
    //
    $query = "SELECT nome, ano FROM filmes";
    if(!($result = @ pg_query($db, $query )))
      showerror($db);
    
    printf("<h1>Lista de filmes</h1>\n");
    displayFilmes($result);
  }
}  
// fechar a ligação à base de dados
pg_close($db);
?>
          
</body>
</html>