• Non ci sono risultati.

Tale file verrà attivato cliccando su un’apposito link del file menu.php contenente un menù ripeilogativo di tutte le funzionalità utente

N/A
N/A
Protected

Academic year: 2021

Condividi "Tale file verrà attivato cliccando su un’apposito link del file menu.php contenente un menù ripeilogativo di tutte le funzionalità utente"

Copied!
13
0
0

Testo completo

(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)

- 9 -

Quesiti 6 e 7)

Creiamo il file query4.php su una piattaforma OPEN SOURCE usando in linguaggio PHP ospitato su un webserver APACHE per interrogare un database MYSQL.

Tale file verrà attivato cliccando su un’apposito link del file menu.php contenente un menù ripeilogativo di tutte le funzionalità utente. Dalle varie funzionalità utente sarà attivo un link per ritornare alla pagina iniziale.

Attivazione link su “indietro”

SCHEMA DI MASSIMA (senza dettagli HTML embedded)

<? php //Segnalatore di inzio codice PHP /****************************************/

/* Valorizzazione parametri del database */

/****************************************/

$db_host = "localhost";

$db_user = "root";

$db_pswd = "xxxxx";

$db_name = "olimpiadi";

/****************************************/

/* Connessione al database */

/****************************************/

$connessione = mysql_connect($db_host, $db_user, $db_pswd) or die("Connessione non riuscita" . mysql_error());

/****************************************/

/* Selezione del database */

/****************************************/

mysql_select_db($db_name) or die("Selezione del database non riuscita" . mysql_error());

/****************************************/

/* Preparazione della query SQL */

/****************************************/

//occorre costruire nella variabile $query, secondo la sintassi SQL, la query di interesse //Esempio Q4

//SELECT CognomeA, NomeA, PosizioneA, PunteggioA, DataNascita //FROM Gara, PartecipaA, Atleta

//WHERE (IDGARA = IDGARA1) AND (IDATLETA = IDATLETA1) AND (TipoGara=”INDIVIDUALE”

//ORDER BY CognomeA, NomeA, Punteggio AS DESC, DataNascita;

/****************************************/

/* Esecuzione di una query SQL */

/****************************************/

$risultato = mysql_query($query) or die("Query fallita" . mysql_error());

/****************************************/

/* Calcolo del numero di occorrenze */

/****************************************/

$numrighe=mysql_num_rows($risultato);

Attivazione link relativo

menu.php

query4.php queryXX.php queryXX.php queryXX.php queryXX.php

(11)

- 10 - /***********************************************************************************************/

/* Visualizzazione delle occorrenze in una pagina HTML usando i relativi TAG in modo embedded (funzione “echo”)*/

/***********************************************************************************************/

if ($numrighe != 0) {

/****************************************/

/* Ciclo sul numero di record trovati dalla query */

/****************************************/

for ($i=0;$i<$numrighe;$i++)

{

//Costruzione di una tabella (TAG HTML “table”) di riepilogo dei record trovati

} } else {

echo "NESSUN RECORD CHE SODDISFA LA QUERY<br>";

}

/********************************************/

/* Liberazione delle risorse del risultato della query */

/********************************************/

mysql_free_result($risultato) or die("Liberazione risorse fallita" . mysql_error());

/*****************************************/

/* Chiusura della connessione al database */

/*****************************************/

mysql_close($connessione) or die("Chiusura connessione fallita" . mysql_error());

?> //Segnalatore di fine codice PHP

(12)

- 11 -

Per quanto riguarda l’architettura di riferimento da utilizzare per accedere un database in rete per questa soluzione implementativa facciamo le seguente ipotesi di partenza:

1) consideriamo il modello concettuale di networking (ovvero tutto ciò che riguarda la comunicazione tra reti diverse) semplificato a 4 livelli;

2) consideriamo i protocolli di comunicazione della famiglia TCP/IP, il browser come client universale ed il Web server come server universale

DBMS

Risposta: Tabelle

Richiesta: query al DBMS Richiesta tramite HTTP al Web server

Nodo con browser

Per semplicità implementativa, in caso di una quantità di dati non eccessivamente numerosa, possiamo implementare sia il Web server (ad esempio APACHE) sia il Database server (ad esempio MYSQL) sullo stesso nodo.

Sempre per semplicità e chiarezza possiamo fare in modo di utilizzare l’SQL come linguaggio standard di interrogazione e manipolazione di un database ed utilizzeremo anche un server SQL relazionale (ad esempio MYSQL).

Dato l’ambiente client-server così ipotizzato in un’architettura di protocolli TCP/IP ed HTTP possiamo utilizzare per sviluppare tutte le funzionalità previste dall’applicazione complessiva, la programmazione lato server ossia possiamo sviluppare una serie di programmi applicativi che andranno in esecuzione prevalentemente sul server, accettando le richieste dal client e fornendo a quest’ultimo i risultati dell’elaborazione sottoforma di pagine HTML;

Tra i linguaggi di programmazione lato server possiamo utilizzareil PHP ossia un linguaggio di scripting lato server (come PERL ed ASP). Un linguaggio di scripting si differenzia dai linguaggi di programmazione veri e propri lato server perché non ha vita autonoma ma può essere utilizzato esclusivamente in quel contesto.

Nodo con server SQL

DATI

Risposta: pagine HTML formate utilizzando i dati nelle Tabelle

LAN o WAN con TCP/IP ed HTTP

Nodo con Web server

(13)

- 12 -

Il PHP è un linguaggio interpretato lato server: infatti un file di comandi PHP è un classico esempio di programma interpretato lato server poiché infatti il Web server associa a tale file l’interprete PHP che deve essere mandato in esecuzione per poterne eseguire i comandi.

SERVER

Per questo motivo è possibile avere comandi PHP all’interno di pagine HTML oppure pagine PHP pure.

Risultato

File HTML

Esecuzione Istruzioni HTML

Interprete PHP

+ Istruzioni HTML

Istruzioni PHP

File PHP

Riferimenti

Documenti correlati

Dato un file testo.txt composto da almeno N righe di testo non vuote, si scriva una funzione stringa_da_file() che crea una stringa di N caratteri composta dall’ultimo

Questa funzione deve anche costruire un nuovo file numeri_bis.txt che contiene gli stessi elementi di numeri.txt con l’eccezione di tutte le occorrenze del massimo e

Si scriva una funzione ordina() che crea un nuovo file chiamato num_org.dat che contenga gli stessi numeri del file numeri.dat ma ordinati in senso decrescente.. La

Sia dato un file città.dat contenente, in ogni riga, una stringa di lunghezza massima 36 caratteri che contiene il nome di una città e un valore intero che ne rappresenta il numero

Scrivere una funzione elimina(l) che riceve in ingresso la lista l e la modifica eliminando tutti gli elementi che hanno il campo informativo uguale a quello

L’architettura più semplice e più diffusa L architettura più semplice e più diffusa Un client invia una richiesta ad un server per l’esecuzione di un compito (task). Un task

A partire dal contenuto del file esami-ematici crei un array associativo $elencoesami usando come chiave il nome dell’esame e come valore un vettore contenete il valore

Il ciclo termina quando da tastiera si inserisce la stringa “*” che verrà comunque scritta nella pipe vocaboli. Il padre