Esercitazione: Applicazione Web Regista - Film - Cinema

Traccia

Realizzare un'applicazione Web per gestite il database Film - Attori - Cinema, sviluppato nella prima esercitazione.

Creare una home page che abbia dei link per effettuare alcune ricerche:

  • 1. Un campo regista e un tasto Submit che dia come risultato l'elenco dei registi presenti sul database con quel nome
  • 2. Un campo regista e un tasto Submit che dia come risultato i film girati da quel regista
  • 3. Un campo attore e un tasto Submit che dia come risultato i film in cui partecipa quell'attore
  • 4. Un campo città e un tasto Submit che dia come risultato l'elenco dei Cinema presenti nella data città


Soluzione prima parte


Primo Passo: Premessa ARCHITETTURA

Realizzare un'applicazione Web, si traduce nel mettere su un WEB SERVER delle pagine fruibili da un browser (siano esse html, php, asp, jsp etc.)
La nostra architettura di riferimento è quella disegnata in figura: APACHE, linguaggio PHP e Base Dati MySQL.
Ci sono moli siti su cui registrandosi si può avere a disposizione un web server su cui pubblicare la propria applicazione Web-php-mysql.
Il Web Server di riferimento sarà il sito Altervista che contiene anche un database MySql.
Se ancora non si possiede, crearsi un account sul sito Altervista e poi proseguire con l'esercitazione.


Secondo Passo: Aprire i tool di sviluppo

Per programmare in html-php, basta anche un solo notepad (su Windows), meglio sarebbe Notepad++ (Su windows) o altri tool free, tipo BlueFish.
Scriveremo alcune pagine PHP e poi tramite il pannello di controllo di Altervista le pubblicheremo.


Terzo Passo: Popoliamo il database

Salvare in locale il file cinema.sql
Dalla pagina principale di Altervista, andare sul link "Accedi a PhpMyAdmin".
Cliccare sul panel "import".
Cliccare "Choose File", scegliere cinema.sql e poi premere il tasto "Go".
A questo punto il DB è creato e popolato. Possiamo procedere con l'applicazione WEB.


Quarto Passo: Prima Form HTML

Sul proprio editor, impostare la base di una pagina HTML che si compone di due parti: l’intestazione (head) e il corpo (body), delimitati da apposite coppie di tag:

 
          	<html>
         		 <head>
          				{intestazione}
       			</head>
       			<body>
        				{corpo}
        		</body>
        	</html>
          

Poi inseriremo all'interno dei tag body, sostituendo {corpo}, la seguente form di ricerca di un regista:

 
<form action="ricercaRegista.php" method="POST" name="form">
			
  <label for="nome">Nome: </label>
  <input id="nome" name="nome" type="text" size="30"><br><br>
			
<input type="submit" value="Ricerca"><br>
</form> 
  

Salvare il file creato come ricerca_regista.html.
Dalla console altervista, andare sul link Gestione File,
poi premere il bottone Invia Files
Premere il bottone Seleziona files, per selezionare ricerca_regista.html e poi premere il bottone Invia files .
Nel momento in cui compare il messaggio che l'Upload è completato, andare tramite browser sul link del proprio sito indicando la pagina ricerca_regista.html e vedere il risultato.


Quinto Passo: Primo Modulo PHP

Creare un nuovo file ricercaRegista.php sempre con la struttura HTML vista sopra.

All'interno del body, sempre sostituendo {corpo} della pagina, inserire il seguente blocco di codice php:

<?php

	$regista=$_POST[nomeregista];

	$db=mysql_connect("localhost","root","root");
	if(!$db)
		echo "no connection"; 
	else
	{
		mysql_select_db("my_XXX");
		$query = "select * from ES1_REGISTA where nome like '%".$regista."%'";
		$result = mysql_query($query);
		$num_results = mysql_num_rows($result);

		echo "Numero di registi trovati: ".$num_results;
		
		for ($i=0; $i < $num_results; $i++)
		{
			$row = mysql_fetch_array($result);
			echo "<br>".$row[nome]." ".$row[nazionalita]." ".$row[anno_di_nascita];   
		}
	}
?>
          

Sostituire il DATABASE my_XXX con il proprio database. Altervista assegna il nome al database come my_nomesito

Sesto Passo: Abbellimenti HTML

Non è indispensabile alla riuscita dell'esercizio, ma è risaputo che la grafica, nel mondo Web, è una componente fondamentale.
Al seguente Link sugli elementi HTML, ci sono una serie di tag HTML che renderanno le nostre pagine ricerca_regista.html e ricercaRegista.php meno spartane.
Qui il file HTML ricerca_regista_new.html e qui il pezzo di codice PHP da sostituire al precedente blocco PHP con l'aggiunta delle <table> con un piccolo bordo.

<?php

$regista=$_POST[nomeregista];

$db=mysql_connect("localhost","root","root");
if(!$db)
	echo "no connection"; 
else
{
	mysql_select_db("my_XXX");

	$query = "select * from ES1_REGISTA where nome like '%".$regista."%'";
	$result = mysql_query($query);
	$num_results = mysql_num_rows($result);
	
	echo "<p>Numero di film trovati: ".$num_results."</p>";
	echo "<table border=\"1\">";
	
	echo "<tr>";
	echo "<td bgcolor=\"#FFFFFF\">Titolo Film";
	echo "</td>";
	echo "<td  bgcolor=\"#FFFFFF\">Regista";
	echo "</td>";
	echo "<td  bgcolor=\"#FFFFFF\">Anno Film";
	echo "</td>";
	echo "</tr>";
for ($i=0; $i < $num_results; $i++)
{
	$row = mysql_fetch_array($result);
	if($i % 2 == 0){
	 echo "<tr>";
	 echo "<td bgcolor=\"#BBBBBB\"> ".$row[regista];
	 echo "</td>";
	 echo "<td  bgcolor=\"#BBBBBB\"> ".$row[titolo];
	 echo "</td>";
	 echo "<td  bgcolor=\"#BBBBBB\"> ".$row[anno];
	 echo "</td>";
	 echo "</tr>";
	}
else
 {
	 echo "<tr>";
	 echo "<td bgcolor=\"#DDDDDD\"> ".$row[regista];
	 echo "</td>";
	 echo "<td  bgcolor=\"#DDDDDD\"> ".$row[titolo];
	 echo "</td>";
	 echo "<td  bgcolor=\"#DDDDDD\"> ".$row[anno];
	 echo "</td>";
	 echo "</tr>";				
  }
	
}
echo "</table>";
}
?>
           
           

Sostituire il DATABASE my_XXX con il proprio database. Altervista assegna il nome al database come my_nomesito


Secondo Passo - Inserimento, Modifica Regista, Film, Cinema!