Corso Sql-Php

Da Wiki-itsos.

Lavoro preliminare obbligatorio

Se si usa un pc, deve rispondere agli stessi requisiti della macchina virtuale. In alternativa, è possibile implementare queste lezioni anche utilizzando un pc con una versione Windows di SO (Xp, Vista, o 7) ma chi intende farlo deve provvedere autonomamente a installare tutti i pacchetti richiesti (apache2, mysql, php) e a configurare il sistema affinchè tutto sia operativo. Fatelo solo se siete veramente esperti e autonomi.

  • Creare la pagina <VostroCognome> Corso Sql-php
  • Linkare la pagina creata alla vostra pagina personale e alla pagina di classe
4444.png
  • Inserire nella pagina l'evidenza di disporre di una macchina (virtuale o fisica) alle specifiche indicate in queste note
4445.png



Installare un sistema LAMP con il comando

sudo apt-get install apache2 php5 php5-mysql mysql-server

SQL - Connettersi

Obiettivi mysql - Connettersi (usando interfaccia a terminale) - Definire utenti

Attenzione: di ogni azione di questa sezione occorre dare evidenza che state lavorando sulla VOSTRA macchina
Suggerimento: non ricopiate meccanicamente gli esempi. Invece, date al DB e alle tabelle un nome auto-esplicativo,
ad esempio DB<VostroCognome>, Tabella<VostroCognome>. Fate lo stesso anche per i record inseriti
e inserite COMMENTI nel codice Php con NOME e DATA

Azioni - Connettersi a MySQL. La prima volta, entreremo come utente root, dando il comando

# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Server version: 5.5.29-0ubuntu0.12.04.2 (Ubuntu)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Importante: non confondiamo l'utente root del sistema con l'utente root di mysql.

Hanno lo stesso nome, in quanto per assonanza sono il superutente dei rispettivi ambiti, ma sono ambiti distinti. Ad esempio, è possibile da utente root (del sistema) connettersi a MySql come utente normale, quindi senza particolari privilegi.
Viceversa, è possibile da utente normale del sistema, accedere come utente root di mysql.

- Definire utenti: possiamo farlo con il comando

create user 'test' identified by 'supp';
Query OK, 0 rows affected (0.00 sec)

Verifichiamo se la creazione ha avuto esito, scollegandoci come root e e collegandoci come test

mysql> exit
Bye
root@DbOnline-mv:~# mysql -u test -p
Enter password: 
Welcome to the MySQL monitor. 

Nota: così come è stato definito, test può collegarsi a mysql da qualsiasi macchina. Se avessimo voluto limitare l'accesso, avremmpo potuto specificare o ridurre le macchine. Ad esempio

create user 'test'@'localhost' identified by 'supp';
create user 'test'@'192.168.2.135' identified by 'supp';

In questi casi, l'utente test può connettersi a MySql solo da localhost (primo esempio) o solo dall'IP 192.168.2.135 (secondo esempio).



E' importante sapere creare utenti in MySql, ma per le prossime azioni continueremo a usare l'utente root,
perchè il nostro obiettivo è, al momento, di ampliare le azioni che sappiamo implementare.


Implementate i comandi di questo messaggio sulla vostra mv, spedite l'evidenza, quindi passate al successivo.

PHP - Connettersi

Prerequisito: DEVE essere già stato superata l'azione SQL - Connettersi

Attenzione: di ogni azione di questa sezione occorre dare evidenza che state lavorando sulla VOSTRA macchina
Suggerimento: non ricopiate meccanicamente gli esempi. Invece, date al DB e alle tabelle un nome auto-esplicativo,
ad esempio DB<VostroCognome>, Tabella<VostroCognome>. Fate lo stesso anche per i record inseriti
e inserite COMMENTI nel codice Php con NOME e DATA

Obiettivo

Implementare la connessione a mysql usando php

Azione

Creare il file /var/www/html/test3.php, contenente il seguente codice:

<?php
mysql_connect("localhost", "root", "supp") or die(mysql_error());
echo "Connesso a MySQL!!";
?>

Eseguiamo il file, usando il link

http://<Ip-Della-vostra-Macchina>/var/www/html/test3.php

Se il sistema funziona e la password è corretta, otterremo una immagine come ad esempio questa
CorsoPhpSql-Fig01.png
In caso contrario, otterremo una immagine come questa:
CorsoPhpSql-Fig02.png

Come si può vedere, nel secondo caso (nessuna risposta, nè messaggio nè errore) manca la connessione php-sql.


Finchè manca la connessione php-sql non è possibile procedere, bisogna risolvere il problema.

Verificare il codice inserito ed eventualmente verificate l'accesso via terminale a mysql.

Se il problema persiste, segnalarlo al docente.


SQL - Lavorare con il DB

Prerequisito: DEVE essere già stato superata l'azione PHP - Connettersi

Obiettivi mysql

  1. Lavorare sui Database
  2. Creare Database
  3. Eliminare Batabase

Azioni

Attenzione: di ogni azione di questa sezione occorre dare evidenza che state lavorando sulla VOSTRA macchina
Suggerimento: non ricopiate meccanicamente gli esempi. Invece, date al DB e alle tabelle un nome auto-esplicativo,
ad esempio DB<VostroCognome>, Tabella<VostroCognome>. Fate lo stesso anche per i record inseriti
e inserite COMMENTI nel codice Php con NOME e DATA

Connettersi come root.
Possiamo vedere l'elenco dei Database presenti sul sistema con il comando:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)

Possiamo creare un nuovo database con il comando:

mysql> create database Nuovo;
Query OK, 1 row affected (0.04 sec)

Esito del precedente comando:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Nuovo              |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)

Importante: osservate il comando condizionale, il cui significato dovrebbe essere auto-espplicativo

mysql> create database IF NOT EXISTS Nuovo;
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> create database IF NOT EXISTS Nuovo2;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Nuovo              |
| Nuovo2             |
| mysql              |
| test               |
+--------------------+
5 rows in set (0.00 sec)

Come si vede, Nuovo già esisteva, quindi NON è stato aggiunto, Nuovo2 invece è stato creato.

Per cancellare, abbiamo il comando drop database, ecco un paio di esempio autoesplicativi:

mysql> drop database Nuovo2;
Query OK, 0 rows affected (0.03 sec)
mysql> drop database if exists Nuovo;
Query OK, 0 rows affected (0.00 sec)
mysql> drop database if exists Nuovo;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| TestDb             |
+--------------------+
3 rows in set (0.00 sec)

Commento finale: - drop database Nuovo2 semplicemente cancella Nuovo2. - drop database if exists Nuovo la prima volta lo cancella, la seconda volta invece non lo trova (notate il warning)

Attenzione: da ora in avanti useremo come db di prove il db TestDb
quindi CREATELO sulla vostra Macchina Virtuale

Implementate i comandi di questo messaggio sulla vostra mv, spedite l'evidenza, quindi passate al successivo.

PHP - Lavorare con il DB

Dobbiamo implementare, usando il php, le stesse azioni che abbiamo svolto in sezione SQL - Lavorare con il DB usando MySql.

Attenzione: di ogni azione di questa sezione occorre dare evidenza che state lavorando sulla VOSTRA macchina
Suggerimento: non ricopiate meccanicamente gli esempi. Invece, date al DB e alle tabelle un nome auto-esplicativo,
ad esempio DB<VostroCognome>, Tabella<VostroCognome>. Fate lo stesso anche per i record inseriti
e inserite COMMENTI nel codice Php con NOME e DATA

Modello di codice PHP da creare (ricordatevi di personalizzarlo!!!)

Percorso PHP - Lavorare con il DB
Test di connessione e selezione di un DB
<?php #Inserire QUI un COMMENTO con il vostro NOME e la DATA mysql_connect('localhost', 'root', 'supp') or die("Non riesco a connettermi a SQL"); mysql_select_db("TestDb") or die("Non trovo il DB. Errore ". mysql_error()); mysql_close(); ?>

Inseriamo il codice nel file

/var/www/html/test4.php

ed eseguiamolo, esaminando i possibili esiti

Possibile Esito (negativo)

Se NON esiste ancora il database TestDb, ci aspettiamo di ottenere questa risposta. 280313 200704 1.png


In tal caso, da MySql verificate cosa succede con show databases;


Possibile Esito (positivo)

Dopo aver verificato l'esistenza del database TestDb, ci aspettiamo di ottenere questa risposta. 280313 200604 0.png



Eseguire i comandi MySQL e php di questo messaggio. Ottenere l'esito positivo e anche l'esito negativo (basta, ad esempio, modificare il listato inserendo un nome sbagliato)


Conclusione

Ora sappiamo: - verificare la connessione a SQL - ottenere e visualizzare informazioni sulla versione php e mysql che stiamo adoperando - verificare se esiste un certo database (nel nostro caso, TestDb) e connetterci, sia in sql che in php

Implementate i comandi di questo messaggio sulla vostra mv, spedite l'evidenza, quindi passate al successivo.

SQL - Lavorare con le tabelle

Prerequisito: DEVE essere già stato superata l'azione PHP - Lavorare con il DB

Obiettivi mysql

  1. Creare tabelle in un database
  2. Esaminare la struttura di una tabella
  3. Eliminare tabelle in un database

Azioni

Attenzione: di ogni azione di questa sezione occorre dare evidenza che state lavorando sulla VOSTRA macchina
Suggerimento: non ricopiate meccanicamente gli esempi. Invece, date al DB e alle tabelle un nome auto-esplicativo,
ad esempio DB<VostroCognome>, Tabella<VostroCognome>. Fate lo stesso anche per i record inseriti
e inserite COMMENTI nel codice Php con NOME e DATA

Per creare una tabella in un database abbiamo a disposizione il comando create table. Ecco un esempio di come si usa

mysql> use TestDb;
Database changed

mysql> create table tabella ( colonna varchar (10) not null);
Query OK, 0 rows affected (0.05 sec)

Risultato ottenuto

mysql> show tables;
+------------------+
| Tables_in_TestDb |
+------------------+
| tabella          |
+------------------+
1 row in set (0.00 sec)

Spiegazione del comando create table:

  1. il nome della tabella (nel nostro caso, la parola tabella) si scrive immediatamente dopo create table
  2. la tabella può avere una o più colonne, che si scrivono tra parentesi.
  3. nel nostro esempio, c'è UNA sola colonna, che si chiama, appunto, colonna
  4. varchar (10) spiega al sistema che la colonna è un tipo di dato formato da massimo 10 caratteri
  5. not null, opzionale, spiega al sistema che NON accettiamo valori nulli (in altri termini: un valore deve contenere minimo un carattere, altrimenti non sarà inserito.

Importante: il tipo varchar è molto comune, lo useremo spesso per fare pratica, ma è bene sapere che esistono tanti altri tipi di dato, ad esempio numeri, booleani, immagini, suoni, filmati...


Esaminare la struttura di una tabella

mysql> describe tabella;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| colonna | varchar(10) | NO   |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
1 row in set (0.00 sec)

mysql>

PHP - Lavorare con le tabelle

Prerequisito: DEVE essere già stato superata l'azione SQL - Lavorare con le tabelle

Attenzione: di ogni azione di questa sezione occorre dare evidenza che state lavorando sulla VOSTRA macchina
Suggerimento: non ricopiate meccanicamente gli esempi. Invece, date al DB e alle tabelle un nome auto-esplicativo,
ad esempio DB<VostroCognome>, Tabella<VostroCognome>. Fate lo stesso anche per i record inseriti
e inserite COMMENTI nel codice Php con NOME e DATA

Dobbiamo implementare, usando il php, le stesse azioni che abbiamo svolto in sezione SQL - Lavorare con le tabelle.

Modello di codice PHP da creare (ricordatevi di personalizzarlo!!!)

Percorso PHP - Lavorare con le tabelle
<?php #Inserire QUI un COMMENTO con il vostro NOME e la DATA mysql_connect('localhost', 'root', 'supp') or die("Non riesco a connettermi a SQL"); mysql_select_db("TestDb") or die("Non trovo il DB. Errore ". mysql_error()); $stm = "CREATE TABLE IF NOT EXISTS " . "PROVE(Parola VARCHAR(25), Id INT PRIMARY KEY AUTO_INCREMENT)"; $ok = mysql_query($stm); if (!$ok) { echo mysql_error(); die("Non riesco a eseguire il comando"); } echo "Tabella PROVE creata con successo"; mysql_close(); ?>

Spiegazione dei comandi nuovi

$stm = "CREATE TABLE IF NOT EXISTS " . 
       "PROVE(Parola VARCHAR(25), Id INT PRIMARY KEY AUTO_INCREMENT)";

Il nome della funzione CREATE TABLE IF NOT EXISTS è autoesplicativo. Nella seconda riga, troviamo il nome della tabella - PROVE - e, tra parentesi, l'elenco dei campi.

  • Parola VARCHAR(25) significa che parola è una stringa di massimo 25 caratteri
  • Id INT PRIMARY KEY AUTO_INCREMENT significa che Id è un numero di tipo intero (INT), che è la chiave primaria e che il suo valore si auto-incrementa. In altri termini: la prima parola inserita avrà Id 1, la seconda 2 e così via.
  • $stm è una stringa, una variabile di lavoro associata al comando.
$ok = mysql_query($stm);

Si effettua una richiesta su $stm, l'esito della richiesta viene assegnato alla variabile di lavoro $ok (più in dettaglio, mysql_query ritorna True se è stata eseguita con successo, False se non è andata a buon fine

if (!$ok) {
  echo mysql_error();
  die("Non riesco a eseguire il comando");
}
  • queste righe rappresentano UNA sola istruzione, che comincia con la parola if e termina con il simbolo }
  • il simbolo !$ok significa NON ok, ovvero è successo un errore
  • L'istruzione quindi si legge: SE - if - l'estito è stato NON buono -!ok- allora visualizza l'errore e termina il programma

Se invece il programma continua, vuol dire che non ha trovato errori e quindi visualizza la frase corrispondente.

echo "Tabella PROVE creata con successo";

Se avete compreso quanto spiegato:

  • create sulla vostra mv il file /var/www/index/test5.php
  • Inseriamo in php5 il codice spiegato
  • Inserite gli adeguati commenti
  • fate eseguire il codice
  • riportate a questo punto le evidenze del vostro lavoro (da SQL, usate il comando show tables;)

SQL - Inserire record in tabella

Prerequisito: DEVE essere già stato superata l'azione PHP - Lavorare con le tabelle

Situazione iniziale Mv adoperata per svolgere i punti precedenti

Obiettivi mysql

  1. Inserire recod in una tabella
  2. Visualizzare i record in una tabella
  3. Eliminare record da una tabella

Azioni

Attenzione: di ogni azione di questa sezione occorre dare evidenza che state lavorando sulla VOSTRA macchina
Suggerimento: non ricopiate meccanicamente gli esempi. Invece, date al DB e alle tabelle un nome auto-esplicativo,
ad esempio DB<VostroCognome>, Tabella<VostroCognome>. Fate lo stesso anche per i record inseriti
e inserite COMMENTI nel codice Php con NOME e DATA

Per inserire una riga in una tabella di un database abbiamo a disposizione il comando insert. Ecco un esempio auto-esplicativo di come si usa

mysql> INSERT INTO tabella(colonna) VALUES('Parola1');
Query OK, 1 row affected (0.06 sec)

Per visualizzare l'intero contenuto di una tabella, useremo il seguente comando

mysql> select * from tabella;
+---------+
| colonna |
+---------+
| Parola1 |
+-------------+----+
1 row in set (0.00 sec)

Il comando SELECT è il più importante e complesso comando SQL
al momento lo stiamo usando in modo elementare

Per eliminare i record da una tabella, si usa il comando DELETE. Ecco un esempio di uso di DELETE

mysql> delete from tabella;
Query OK, 1 row affected (0.06 sec)
mysql>  select * from tabella;
Empty set (0.00 sec)

Come si può vedere, delete rimuove TUTTI i record presenti nella tabella.


E' possibile usare DELETE per eliminare solo ALCUNI record presenti in tabella. Per questo, esaminiamo la sequenza di comandi, abbastanza auto-esplicativa, che poi commenteremo

mysql> INSERT INTO tabella(colonna) VALUES('Parola1');
Query OK, 1 row affected (0.06 sec)

mysql> INSERT INTO tabella(colonna) VALUES('Parola2');
Query OK, 1 row affected (0.06 sec)

mysql> INSERT INTO tabella(colonna) VALUES('ciao');
Query OK, 1 row affected (0.06 sec)

mysql> INSERT INTO tabella(colonna) VALUES('Parte');
Query OK, 1 row affected (0.07 sec)
mysql> select * from tabella;
+---------+
| colonna |
+---------+
| Parola1 |
| Parola2 |
| ciao    |
| Parte   |
+---------+
4 rows in set (0.00 sec)
mysql> delete from tabella where colonna = "Parola2";
Query OK, 1 row affected (0.06 sec)
mysql> select * from tabella;
+---------+
| colonna |
+---------+
| Parola1 |
| ciao    |
| Parte   |
+---------+
3 rows in set (0.00 sec)

Commenti

  • I comandi SQL possono essere dati in MAIUSCOLO o in minuscolo, non fa differenza
  • se si vuole cancellare un record particolare, bisogna aggiungere al comando DELETE la clausola WHERE, e poi specificare il valore da rimuovere
  • nella clausola where possono essere inseriti anche caratteri jolly. Ad es where colonna = "Parola*" cancella sia Parola1 che Parola2 (ma NON cancella Parte)

Se avete compreso quanto spiegato:

  • Collegatevi alla vostra Mv usando ssh
  • Accedete a MySQL come utente root
  • Date l'evidenza che siete capaci di vedere i database, creare e cancellare database
  • Date l'evidenza che siete capaci di vedere le tabelle di un database, creare e cancellare tabelle
  • Date l'evidenza che siete capaci di aggiungere record a una tabella, visualizzare il contenuto della tabella e cancellare uno o tutti i record della tabella

PHP - Inserire record in tabella

Prerequisito: DEVE essere già stato superata l'azione SQL - Inserire record in tabella

Attenzione: di ogni azione di questa sezione occorre dare evidenza che state lavorando sulla VOSTRA macchina
Suggerimento: non ricopiate meccanicamente gli esempi. Invece, date al DB e alle tabelle un nome auto-esplicativo,
ad esempio DB<VostroCognome>, Tabella<VostroCognome>. Fate lo stesso anche per i record inseriti
e inserite COMMENTI nel codice Php con NOME e DATA

Dobbiamo implementare, usando il php, le stesse azioni che abbiamo svolto in sezione SQL - Lavorare con le tabelle.

Modello di codice PHP da creare (ricordatevi di personalizzarlo!!!) Date al file il nome tab6.php

 Percorso PHP  - Inserire record in tabella
<?php #Inserire QUI un COMMENTO con il vostro NOME e la DATA mysql_connect('localhost', 'root', 'supp') or die("Non riesco a connettermi a SQL"); mysql_select_db("TestDb") or die("Non trovo il DB. Errore ". mysql_error()); $stm = "CREATE TABLE IF NOT EXISTS " . "Tab6 (Parola VARCHAR(25), NumId INT PRIMARY KEY AUTO_INCREMENT)"; $ok = mysql_query($stm); if ($ok) { echo "Tabella Tab6 presente nel DB
"; } else { echo mysql_error(); die("Non riesco a creare la tabella Tab6"); } mysql_query("INSERT INTO Tab6(Parola) VALUES('UnaParola')") or die(mysql_error()); mysql_query("INSERT INTO Tab6(Parola) VALUES('AltraParola')") or die(mysql_error()); echo "Aggiunte con successo 2 righe alla tabella Tab6"; mysql_close(); ?>

Spiegazione dei nuovi comandi presenti in tab6.php

  • Il comando INSERT server per inserisce una RIGA in una tabella. Più precisamente, INSERT INTO Tab6(Parola) VALUES('UnaParola') inserisce in Tab6, nel campo Parola, il valore UnaParola.
  • Quando si inserisce in Tab6 una nuova riga, il valore NumId si auto-incrementa. Quindi ogni nuova riga avrà un valore progressivo (1, 2, 3...)
  • se il codice php viene ripetuto, si aggiungono ogni volta nuove righe alla tabella. Il valore di Parola può essere ripetuto, quello di NumID invece è unico.
  • nota sulle stringhe: una stringa può contenere ogni tipo di caratteri: lettere dell'alfabeto, cifre numeriche, ma anche simboli come ' . ? - = e persino lo spazio. Quindi as esempio le 2 parole buon giorno, con lo spazio che le separa, formano una stringa. Per non avere dubbi su dove comincia e dove finisce la stringa, si usano le virgolette, semplici o doppie. Ad esempio 'buon giorno' indica una stringa, mentre 'buon' 'giorno' indica due distinte stringhe.
  • Il codice funziona con una logica simile a quello di test5.php, ma un po' più compatta. Quindi:
    • Si tenta il collegamento al DB. se fallisce, termina il programma
    • Se la tabella Tab6 non esiste, viene creata
    • Se tutto è corretto visualizza che Tab6 è presente, altrimenti interrompe il programma
    • Infine, aggiunge le 2 righe in tabella
  • Nel codice SORGENTE, al termine delle righe Percorso PHP - Inserire record in tabella e echo "Tabella Tab6 presente nel DB è presente il comando per mandare a capo. Questo comando si scrive < b r / > (senza spazi) ma non viene visualizzato nella pagina wiki, al suo posto il testo viene mandato a capo

Se avete compreso quanto spiegato:

  • create sulla vostra mv il file /var/www/html/test6.php
  • inserite in php6 il codice spiegato, PERSONALIZZATELO
  • fate eseguire il codice, anche più di una volta
  • riportate a questo punto le evidenze del vostro lavoro
    • da SQL, usate il comando select * from Tab6;

PHP - Visualizzare il contenuto di una tabella

Prerequisito: DEVE essere già stato superata l'azione PHP - Inserire record in tabella
Abbiamo già realizzato in php un primo inserimento di record in tabella. Ora dobbiamo implementare, in php, l'equivalente del comando SQL (ecco il nostro ESEMPIO)

select * from tabella;
+-------------+-------+
| Parola      | NumId |
+-------------+-------+
| UnaParola   |     1 |
| AltraParola |     2 |
| UnaParola   |     3 |
| AltraParola |     4 |
+-------------+-------+
4 rows in set (0.00 sec)

Attenzione: in questa sezione utilizzeremo lo stesso DB di ESEMPIO della sezione precedente (TestDb) e la stessa tabella ESEMPIO Tab6
Chiaramente, voi dovrete usare il VOSTRO DB che avete usato nella sezione precedente

Azione php

L'azione php è più complicata rispetto a quella SQL perché, dopo aver estratto i valori dalla tabella, bisogna anche visualizzarli. Per questo occorre scrivere, riga per riga, i valori della tabella.

<?php
#Inserire QUI un COMMENTO con il vostro NOME e la DATA 
mysql_connect('localhost', 'root', 'supp')
  or die("Non riesco a connettermi a SQL");

mysql_select_db("TestDb") 
   or die("Non trovo il DB. Errore ". mysql_error());

$stm = "SELECT Parola, NumId From Tab6";

$result = mysql_query($stm)
   or die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
   echo $row['NumId'];
   echo ": ";
   echo $row['Parola'];
   echo "
"; } mysql_close(); ?>

Spiegazione dei comandi usati:

$stm = "SELECT Parola, Id From PROVE";

In Sql, avevamo semplicemente usato *, qui invece adoperiamo i nomi dei campi, entrambi, per poter gestire i loro valori nelle istruzioni successive

$result = mysql_query($stm)

Il risultato dell'interrogazione select eseguita in precedenza viene riversato nella stringa $result, che contiene quindi tutti i valori presenti in Tabella.

while ($row = mysql_fetch_assoc($result))

L'istruzione while -in italiano mentre- serve per attivare un ciclo.
$result viene passata riga per riga con mysql_fetch_assoc($result), e ogni volta $row contiene la singola riga. In particolare, per ogni riga sono eseguite tutte le istruzioni che stanno tra i simboli { e }

   echo $row['Id']; 		Visualizza il valore di Id (in pratica, il numero progressivo)
   echo ": ";			Visualizza dopo il numero il carattere : e uno spazio
   echo $row['Parola'];	Visualizza il valore della Parola
   echo "
"; Infine manda a capo per la prossima riga

Se avete compreso quanto spiegato:

  • create sulla vostra mv il file /var/www/index/test7.php
  • inserite in php7 il codice spiegato, PERSONALIZZATELO
  • fate eseguire il codice. L'esito atteso dovrebbe essere:

Php-Sql-2015-04-25.png

  • Intervenite da terminale SQL e modificate il contenuto della tabella
  • riportate le evidenze del vostro lavoro