Lezioni di Informatica
"Una volta che abbiate conosciuto il volo, camminerete sulla terra guardando il cielo" [ L. da Vinci ]
Informazioni sul Sito
N. visitatori  000067089  dal 21/01/2007  |   e-mail: ksoft64camera@gmail.com   
Cerca nel sito
Documenti collegati alla pagina
Gestione Palestra

TRACCIA

DATABASE [SOLUZIONE mySQL]

Utilizzando il dbms mySQL si costruisca il database palestra con le seguenti tabelle (engine=innoDB):
  • attivita (IDA, attivita)
  • istruttori (IDI, istruttore)
  • attivita_avviate (IDAA, IDA, IDI, datainizio, orepreviste)
NOTE:
Le chiavi primarie sono in grassetto, le chiavi esterne sono in corsivo Lo studente può integrare le tabelle con campi aggiuntivi I dati possono essere strutturati a piacere E' richiesta la costruzione delle chiavi esterne

ELABORAZIONI [SOLUZIONE PHP]

Utilizzando il linguaggio PHP svolgere le seguenti elaborazioni:
  1. scrivere una pagina web che visualizzi codice attività (IDA) e attività (elencoattivita.php). Questa pagina deve consentire di scegliere un'attività attraverso il codice (IDA).
  2. scrivere una pagina web (dettaglio.php) nella quale siano visualizzate datainizio, istruttore, orepreviste relative al codice attività (IDA) scelto grazie alla pagina elencoattivita.php.

SOLUZIONE mySQL

TABELLE:
create table attivita(IDA int auto_increment primary key, attivita varchar(30) not null) engine=innoDB;

create table istruttori(IDI int auto_increment primary key, istruttore varchar(30) not null) engine=innoDB;

create database attivita_avviate(IDAA int auto_increment primary key, IDA int not null, IDI int not null, datainizio date, orepreviste int) engine=innoDB;

CHIAVI ESTERNE
alter table attivita_avviate add constraint fkattivita foreign key(IDA) references attivita(IDA);

alter table attivita_avviate add constraint fkistruttori foreign key(IDI) references istruttori(IDI);

[ TRACCIA ]

SOLUZIONE PHP

Se si utilizza l'invio dei dati tramite FORM e Radio Button si costruirà la pagina elencoattivita.php nel seguente modo:
elencoattivita1.php
<html>
<head>
<title></title>
</head>
<body>
<form action="dettaglio1.php" method="POST">
ELENCO ATTIVITA'
<hr/>
<?php
	$c=mysql_connect("localhost","root","");
	mysql_select_db("palestra", $c);
	$sql="select IDA, attivita from attivita order by IDA;";
	$q=mysql_query($sql, $c);
	while ($r=mysql_fetch_row($q))
	{
		echo "<input type='radio' name='IDA' value='", $r[0], "' /> ";
		echo $r[0], " ", $r[1], "<br/>";	
	}	
	mysql_close($c);
?>
<hr/>
<input type="submit" value="Visualizza" />
</form>
</body>
</html>


In alternativa si può ricorrere ai collegamenti ipertestuali inviando i dati con attachment alla URL:
elencoattivita2.php
<html>
<head>
<title></title>
</head>
<body>
ELENCO ATTIVITA'
<hr/>
<?php
	$c=mysql_connect("localhost","root","");
	mysql_select_db("palestra", $c);
	$sql="select IDA, attivita from attivita order by IDA;";
	$q=mysql_query($sql, $c);
	while ($r=mysql_fetch_row($q))
	{
		echo "<a href='dettaglio2.php?IDA=", $r[0], "'>";
		echo $r[0], " ", $r[1];
		echo "</a>";
		echo "<br/>";
	}	
	mysql_close($c);
?>
<hr/>
</body>
</html>

Nella prima ipotesi la pagina che riceverà i dati (dettaglio1.php) sarà sviluppata così:
dettaglio1.php
<html>
<head>
<title></title>
</head>
<body>
<?php
	$IDA=$_POST["IDA"];
	echo "<table border='1'>";
	echo "<caption>DETTAGLIO ATTIVITA' codice ", $IDA, "</caption>";
	echo "<tr>";
	echo "<th>Data inizio</th><th>Istruttore</th><th>Ore previste</th>";
	echo "</tr>";
	$c=mysql_connect("localhost","root","");
	mysql_select_db("palestra", $c);
	$sql="select date_format(datainizio,'%d/%m/%Y'), istruttore, orepreviste ";
	$sql.="from attivita_avviate, istruttori ";
	$sql.="where attivita_avviate.IDI=istruttori.IDI ";
	$sql.="and IDA=".$IDA;
	$sql.=" order by datainizio;";
	$q=mysql_query($sql, $c);
	while ($r=mysql_fetch_row($q))
	{
		echo "<tr>";
		echo "<td>", $r[0], "</td>";
		echo "<td>", $r[1], "</td>";
		echo "<td>", $r[2], "</td>";
		echo "</tr>";
	}	
	mysql_close($c);
	echo "</table>";
?>
</body>
</html>


altrimenti così (l'unica istruzione che varia è scritta in grassetto):
dettaglio2.php
	...
	v. dettaglio1.php
	...
	$IDA=$_GET["IDA"];
	...
	v. dettaglio1.php
	...
[ TRACCIA ]