Ciao a tutti!
Sto iniziando a imparare a utilizzare il liguaggio Php.
Mi sono creato un database in Ms Access e sono riuscito a ciclare una tabella (del db), tramite una pagina php, e visualizzare il risultato in firefox.
Sto provando a creare 2 pagine php (master e dettaglio), basate su 2 tabelle diverse e collegate 1-molti, in modo che sulla prima ci sia una tabella dei generi di film e un link che apre e filtra la seconda pagina (dettaglio) che mostra i film che appartengono al genere cliccato.
In buona sostanza ID = CE (Chiave esterna).
La pagina master contiene il seguente codice php:
codice:
<?php
// Includo il file contenente la stringa di connessione al db access
include("connessione.php");
// Creo due oggetti COM contenenti gli oggetti Connection e Recordset
$cn = new \COM("ADODB.Connection");
$rs = new \COM("ADODB.Recordset");
// Apro la Connessione ed il Recordset
$cn->Open($sc);
$rs->Open("SELECT * FROM TGeneri", $cn);
echo "<table width='200' border='1' align = 'center'>";
echo "<tr>";
echo "<td><strong>Identificativo</strong></td>";
echo "<td><strong>Genere</strong></td>";
echo "<td><strong>Dettaglio</strong></td>";
echo "</tr>";
// Controllo che sulla tabella ci siano dati
if ($rs->EOF)
{
echo "<tr>";
echo "<td><strong>Nessun Risultato</strong></td>";
echo "</tr>";
}
// <b>Se ce ne sono effettuo un ciclo di lettura</b>
else while ($rs->EOF == FALSE)
{
echo "<tr>";
echo "<td>". $rs->Fields ['IdGenere']->value ."</td>";
echo "<td>" .$rs->Fields ['Genere']->value . "</td>";
echo "<td><strong><a href=\catalogo.php?CeGenere=".$rs->Fields['IdGenere']->value."\">Elenco Filtrato</a></strong></td>";
echo "</tr>";
$rs->MoveNext();
}
echo "</table>";
// Chiudo il Recordset
$rs->Close();
$rs = null;
// Chiudo la Connection
$cn->Close();
$cn = null;
?>
il codice della pagina dettaglio è:
codice:
<?php
// Includo il file contenente la stringa di connessione
include("connessione.php");
$cn = new \COM("ADODB.Connection");
$rs = new \COM("ADODB.Recordset");
// questo è un test per vedere se dalla pagina master recupero l'id cliccato
// il risultato è sempre un valore nullo
$id = (isset($_GET['IdGenere']) ? $_GET['IdGenere'] : '');
echo "Il NUm e' ". $id;
// Apro la connessione ed il Recordset
$cn->Open($sc);
// qui dovrei utilizzare ''WHERE IdGenere = $id
$rs->Open("SELECT * FROM TFilm", $cn);
echo "<table width='200' border='1' align = 'center'>";
echo "<tr>";
echo "<td><strong>Titolo Film</strong></td>";
echo "<td><strong>Anno</strong></td>";
echo "<td><strong>Regista</strong></td>";
echo "</tr>";
// Controllo che sulla tabella ci siano dati
if ($rs->EOF)
{
echo "<tr>";
echo "<td><strong>Nessun Risultato</strong></td>";
echo "</tr>";
}
// <b>Se ce ne sono effettuo un ciclo di lettura</b>
else while ($rs->EOF == FALSE)
{
echo "<tr>";
echo "<td>".$rs->Fields ['TitoloFilm']->value ."</td>";
echo "<td>".$rs->Fields ['Anno']->value . "</td>";
echo "<td>".$rs->Fields ['Regista']->value . "</td>";
echo "</tr>";
$rs->MoveNext();
}
echo "</table>";
// Chiudo il Recordset
$rs->Close();
$rs = null;
// Chiudo la Connection
$cn->Close();
$cn = null;
?>
In buiona sostanza quello che non riesco a fare è passare l'id dalla pagina master alla pagina dettaglio tramite la variabile $_GET.
(Ricordo che sono un principiante..)
Ringrazio chiunque vorrà aiutarmi..!
Buona Domenica a tutti.
Ciao,
Fil.
P.s.
Aggiungo che il codice della pagina "connessione.php" è il seguente:
codice:
<?php
$db = "C:\inetpub\wwwroot\SitoDinamico\mdb-database\DbFilm.mdb";
$sc = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" . $db . ";";
?>