Esempio Progetto PHP Un piccolo negozio online - Docente

Pagina creata da Francesca Bertolini
 
CONTINUA A LEGGERE
Esempio Progetto PHP

            Un piccolo negozio online

CORSO: Master di primo livello in tecnologie sicurezza web e networking

         Docente: Dott.ssa Daniela Remogna – www.fimietta.it
                                                                          1
Presentazione del progetto
L’azienda InfoTech è un piccolo negozio di informatica che tratta le seguenti
categorie di articoli:

• CHIAVETTE
• HARD DISK
• RAM
• SCHEDE VIDEO
• PORTATILI
• ROUTER

InfoTech decide di ingrandire la propria attività vendendo i propri prodotti sulla
rete di Internet.

Infotech ha bisogno di un sito Internet che le consenta di presentare i propri
prodotti sul web.

Inoltre anche i dipendenti dell’azienda con basse competenze informatiche,
devono aver la possibilità di inserire nuovi prodotti in modo semplice e veloce.     2
Presentazione del progetto

Come progettare tutto questo?

Prima di tutto bisogna pensare a come strutturare le pagine del sito. Quante sono? Cosa
fanno?

In linea generale dovranno esserci due categorie di pagine:

La prima categoria è quella del front-end e qui troviamo le pagine visibili a tutti gli utenti,
ad esempio la pagina catalogo prodotti.

La seconda categoria è quella del back-end e qui troviamo le pagine di amministrazione
del sito web, come ad esempio la pagina inserisci un nuovo prodotto.

Le pagine del back-end dovrebbero essere protette con autenticazione. In questo modo
solo il personale dell’azienda InfoTech potrà inserire dei nuovi prodotti e non il resto del
mondo di internet. ☺

La fase di autenticazione non sarà illustrata in questo progetto. Per ora ci accontentiamo
di creare la struttura e le pagine senza protezione.
                                                                                                  3
Struttura delle pagine

FRONT-END:                    GUIDE UTILI

index.php
prodotti.php                  http://php.html.it/guide/

BACK-END:                     RACCOLTA SCRIPT UTILI

admin.php
nuova_categoria.php            http://php.html.it/script/
nuovo_prodotto.php
inserisci_prodotto.php
inserisci_categoria.php

                                                            4
L’HOME PAGE la pagina index.php

                    FRONT-END:
                    index.php

                    E’ la pagina di presentazione del
                    sito.

                    La parte più importante è il link
                    CONSULTA IL CATALOGO che
                    consente di sfogliare per
                    categoria i prodotti registrati nel
                    DATABASE.

                                                    5
LA PAGINA prodotti.php
                FRONT-END:
                prodotti.php

                E’ il catalogo prodotti del sito.

                Cosa fa questa pagina?

                In poche parole, legge il
                contenuto di due tabelle
                presenti nel database e
                impagina i risultati utilizzando
                l’HTML e i CSS.

                La prima tabella ad essere
                letta è CATEGORIE.

                Mentre la seconda tabella è
                PRODOTTI.
                                            6
LA SEZIONE AMMINISTRATIVA
                 BACK-END:
                 admin.php

                 Questa sezione è quella che
                 utilizzeranno i dipendenti
                 dell’azienda InfoTech per
                 aggiungere in modo semplice e
                 veloce nuovi prodotti.

                 La parte più importante di questa
                 pagina è il menu composto dalle
                 voci

                 “NUOVO PRODOTTO”, “NUOVA
                 CATEGORIA”, “HOME PAGE”.

                                             7
INSERIMENTO DI UN NUOVO PRODOTTO
                    BACK-END:
                    nuovo_prodotto.php

                    Cosa fa questa pagina?
                    Consente di registrare un nuovo
                    prodotto nel database.

                    La parte più importante è il
                    FORM / MODULO che consente
                    di raccogliere i dati inseriti dal
                    personale dell’InfoTech
                    all’interno di apposite caselle di
                    testo/textarea e menu a tendina.

                    Notare che il menu a tendina
                    della Categoria viene compilato
                    dinamicamente leggendo il
                    contenuto della tabella
                    Categorie.

                    Il form spedisce i dati alla pagina
                    inserisci_prodotto.php              8
LA PAGINA inserisci_prodotto.php
                    BACK-END:
                    inserisci_prodotto.php

                    Cosa fa questa pagina?

                    Raccoglie i dati digitati dal
                    personale dell’InfoTech nella pagina
                    nuovo_prodotto.php e li salva nel
                    database all’interno della tabella
                    PRODOTTI.

                                                   9
LA PAGINA nuova_categoria.php
                  BACK-END:
                  nuova_categoria.php

                  Cosa fa questa pagina?
                  Consente di registrare una
                  nuova categoria di prodotti.

                  La parte più importante è il
                  FORM / MODULO che
                  consente di raccogliere i dati
                  inseriti dal personale
                  dell’InfoTech all’interno delle
                  caselle di testo.

                  E’ importante che ogni
                  elemento del form abbia un
                  nome univoco (attributo name
                  del tag apposito)
                                                    10
LA PAGINA prodotti.php
            BACK-END:
            inserisci_categoria.php

            Cosa fa questa pagina?

            Raccoglie i dati digitati dal
            personale dell’InfoTech nella
            pagina nuova_categoria.php e
            li salva nel database all’interno
            della tabella CATEGORIE.

                                                11
Flusso pagine per l’inserimento di un nuovo prodotto

1   index.php                2 admin.php

                                       4 inserisci_prodotto.php   12
           3 nuovo_prodotto.php
Progettazione DATABASE

Per ogni articolo trattato si desidera visualizzare le seguenti informazioni:

 IDARTICOLO         NOME             CATEGORIA    DESCRIZIONE               QTA       PREZZO               FOTO
1             CHIAVE USB 1 GB      CHIAVETTE     Questo modello             20    6.00 €       KIN_MH_51796_DTI_1GB_C.jpg
              KINGSTON                           risponde alle esigenze
                                                 degli utenti home
                                                 office, delle piccole
                                                 aziende e di scuole

2             CHIAVETTA USB        CHIAVETTE     La particolarità di        50    15.00 €      NEO_MH_55930_PD2104K_2_C.jpg
              BRACCIALE 1GB NERO                 questa pen drive è
                                                 costituita dal fatto che
                                                 la puoi facilmente
                                                 indossare come un
                                                 braccialetto in modo
                                                 da avere sempre con
                                                 te i tuoi dati, le tue
                                                 foto e la tua musica!

3             SAMSUNG HARD DISK    HARD DISK     Una grande capacità        8     50.00 €      SHD_MM_63058_HM080HC.jpg
              80GB 2.5 IDE                       di archiviazione
                                                 associata ad un
                                                 funzionamento
                                                 silenzioso ed affidabile

 4            HARD DISK 1 THERA    HARD DISK     La prima famiglia di       10    200.00 €     WDG_MM_58362_WD10EACS.jpg
              SATA2 GREEN POWER                  hard disk attenti ai
                                                 consumi !

                                                                                                                       13
TECNOLOGIE
E’ necessario creare e progettare un database dove memorizzare i dati dei prodotti
trattati.

E’ necessario progettare pagine dinamiche che permettano di inserire nuovi
    prodotti nel database.

Per fare tutto ciò useremo le Tecnologie Web Server Side.

                                                                              14
Tecnologie Web Server Side
                                               Php è un modulo aggiuntivo per web servers
                                               che permette di creare delle pagine web
                                               dinamiche.

                                               1. Contatore accessi, Blog
                                               2. Inserire/Modificare/Leggere dati memorizzati in un
         Esempi di applicazioni:                  database
                                               3. Realizzare un sito di commercio elettronico
                                               4. Programmi gestionali che funzionano via WEB
                                                  (gestione magazzino, gestione commesse etc)
LINK di progetti sviluppati in php:

CMS(Content Management System): per creare siti web in modo semplice e automatico. URL: http://www.joomla.it/

Programmi gestionali che funzionano via web:
 GAFFI - Gestione affitti via WEB: è un programma scritto in PHP eseguibile su server WEB Apache e DBMS Mysql
    per gestire gli immobili dati in locazione: http://www.devincentiis.it/softgaff.php

   Software gestione alberghiera: http://www.digitaldruid.net/php-
                                   http://www.digitaldruid.net/php-residence/
                                                                                                                15
   Open Source E-
                E-Commerce: http://www.oscommerce.com
PREREQUISITI
                               (Structured Query Language) è un linguaggio
                               creato per l'accesso a informazioni
                               memorizzate nei DATABASE.

                              Permette di:
                              1. Creare tabelle
                              2. Inserire/Modificare/Cancellare dati in tabelle
                              3. Definire le relazioni
                              4. etc

Si utilizza insieme ad un linguaggio OSPITE, che nel nostro caso è il PHP.
Qualsiasi programma gestionale(software per la gestione di prenotazioni
Alberghiere, commercio elettronico, gestione commesse) è basato su un database
                                                                             16
SERVER CHE SI UTILIZZERANNO

          è un Database management system
          (DBMS) relazionale, composto da un
          client con interfaccia a caratteri e un
          server, entrambi disponibili sia per
          sistemi Unix che per Windows, anche se
          prevale un suo utilizzo in ambito Unix.

          Apache è il nome dato alla piattaforma
          server Web più diffusa (ma anche al
          gruppo di lavoro open source che ha
          creato, sviluppato e aggiornato il
          software server), in grado di operare da
          sistemi operativi UNIX-Linux e Microsoft.
                                                      17
EasyPHP è una piattaforma di sviluppo Web, che permette di far funzionare
   localmente (senza connettersi ad un server esterno) degli script PHP.

EasyPHP non è solo un software, ma un ambiente di sviluppo comprendente:
1. due server (un server Web Apache e un server di basi di dati MySQL)
2. un interprete di script PHP
3. un amministratore di database MySQL con interfaccia grafica chiamato
   phpMyAdmin.

Dispone di un’interfaccia d’amministrazione che permette di gestire gli utenti,
   l’avvio e lo spegnimento dei server. Permette di installare in un volta sola
   tutto il necessario per iniziare lo sviluppo locale di PHP.

                                                                                  18
Il server Apache crea automaticamente di default un dominio virtuale (in locale)
    all’indirizzo di localhost (http://127.0.0.1).

EasyPHP può essere utilizzato come applicazione portatile, per esempio
   attraverso una chiave USB.

La versione 2.0 apporta le nuove versioni dei suoi componenti: Apache 2.2.3,
   PHP 5.2.0, MySQL 5.0.2, PHPMyAdmin 2.9.1.1, SQLiteManager 1.2.0

   Il software ha l'enorme vantaggio di installare tutti i software necessari per la
   progettazione e il funzionamento di un sito web in locale.

E' possibile vedere le pagine progettate semplicemente digitando
    l'indirizzo:http://localhost nella barra degli indirizzi del proprio browser.

                                                                                    19
LINK

PhpMyAdmin: http://www.phpmyadmin.net/home_page/index.php

EasyPhp: http://easyphp.org/index.php

Apache: http://www.apache.org/

MySql: http://www-it.mysql.com/

PHP: http://www.php.net/

                                                            20
COSA DOBBIAMO FARE?

Dobbiamo creare un nuovo database dove memorizzare i prodotti trattati
  dall’azienda InfoTech.

Questo database sarà composto da due tabelle: la tabella Prodotti e la
  tabella Categorie.

                                                                         21
CREAZIONE DEL DATABASE
   Per creare un nuovo database è necessario accedere a PhpMyAdmin
    attraverso la seguente procedura: cliccare sull’icona E di easyphp e scegliere
    la voce Amministrazione, oppure aprire il browser e digitare il seguente url:
http://127.0.0.1/home/

                                                                              22
EASY PHP ADMINISTRATION
               Questa è una pagina di
               riepilogo che mostra quali
               sono i server e moduli installati
               in EasyPhp.

               Per gestire il server di database
               Mysql cliccare su
                      Manage Database

                                             23
phpMyAdmin
PhpMyAdmin è un tool che permette di gestire l'amministrazione di database
   MySQL. Scritto in linguaggio PHP permette di gestire tramite web browser i
   database contenuti in un server mySQL.

Cliccando sul
menu a tendina
(Database) è
possibile
selezionare un
database esistente

                                             Qui è possibile creare un nuovo
                                             database.
  http://openskill.info/topic.php?ID=187
                                                                               24
CREAZIONE DEL DATABASE
Per il nostro progetto creiamo un database nominato “infotechdb”

  Tutte le operazioni che esegue
  phpMyAdmin sono sempre
  traducibili in linguaggio SQL.
                                                                   25
CREAZIONE DELLA TABELLA CATEGORIE

Un database è composto da una o più tabelle.

                                               Per creare una nuova
                                               tabella, compilare la
                                               maschera presenta in crea
                                               una nuova tabella nel
                                               database infotechdb.

                                                                     26
Inserimento dei campi
Una tabella è composta da uno o più campi (colonne). Ogni tabella dovrebbe avere un campo
    di tipo chiave primaria che identifica in maniera univoca ogni record(riga) della tabella.
Inoltre la chiave primaria viene utilizzata per creare relazioni tra tabelle.

 Per definire un campo di tipo chiave primaria, mettere la spunta sul simbolo della
                                                                                27
 chiave.
Inserimento dei campi
La tabella Categoria è composta da due campi: IDCategorie e Nome.
Per ogni campo bisogna specificare quale tipo di dato conterrà, un po’ come le variabili.
Il campo IDCategoria sarà la chiave primaria della tabella Categorie, è di tipo INT e si auto
     incrementa da solo.

                                                         Cliccare su Salva per confermare
                                                         la creazione della tabella.

 Guida sul linguaggio SQL: http://database.html.it/guide/leggi/40/guida-linguaggio-sql/
                                                                                28
CREAZIONE della tabella CATEGORIE

PhpMyAdmin mostra sempre
il codice SQL utilizzato per
creare la tabella.

Cliccare su infotechdb

                                              29
CREAZIONE della tabella PRODOTTI

E’ possibile creare altre
tabelle compilando la
maschera Crea una nuova
tabella del database
infotechdb

 Creiamo la tabella prodotti
 composta da 7 campi e
 clicchiamo sul pulsante
 Esegui.
 Esegui

                                    30
CREAZIONE dei campi della tabella prodotti

In questo caso il campo IDProdotti sarà la chiave primaria della tabella prodotti.

Notare che il campo Descrizione è stato impostato di tipo LONGTEXT.
                                                                                     31
CREAZIONE dei campi della tabella prodotti

Notare che il campo foto non contiene l’immagine, ma solo il nome dell’immagine o
   il suo percorso. Questo perché in genere le immagini si salvano all’interno di
   cartelle e sul database si salva solo il nome.

                                                                             32
CREAZIONE dei campi della tabella prodotti

Cliccando su Salva viene creata la tabella Prodotti e viene mostrato il codice SQL
    generato.

                                                                                33
CREAZIONE delle pagine dinamiche
A questo punto la fase di creazione del database è terminata.

Ora dobbiamo costruire le nostre pagine dinamiche in linguaggio PHP.

Partiamo dal BACK-END ovvero costruiamo le pagine per inserire un nuovo
   prodotto o una nuova categoria nel database.

Creiamo in C:\Program Files\EasyPHP1-8\www una cartella di nome infotech e
   al suo interno memorizzeremo tutti i file del sito.

Per accedere al sito sarà sufficiente digitare nella barra degli indirizzi:

http://127.0.0.1/infotech/

                                                                              34
La sezione Amministrativa
                                      Creiamo un file php nominato admin.php

                                      Questa sezione è semplice, l’unica cosa un po’
                                      particolare è che il menu lo includiamo
                                      dinamicamente attraverso l’istruzione php include.

                         Questo è il contenuto del file menu.inc:

NUOVO PRODOTTO
NUOVA CATEGORIA
HOME PAGE

    In questo modo possiamo includere il menu in tutte le pagine della sezione amministrazione.
    Questo sistema ha il vantaggio di offrire un facile aggiornamento delle voci del menu poiché
                                                                                                35
    basta aggiornare un unico file e tutte le pagine di amministrazione si aggiornano di conseguenza.
La sezione Amministrativa
 Ecco il listato di codice per creare la pagina admin.php

 Notare come il codice PHP si mischi con il codice HTML.

    HOME PAGE - INFOTECH IL TUO NEGOZIO DI INFORMATICA ONLINE
    
  INFOTECH IL TUO NEGOZIO DI INFORMATICA ONLINE
  SEZIONE AMMINISTRATIVA
  
      Benvenuto nell'area amministrativa di INFOTECH.
      Tramite il menu sottostante avrai la possibilità di aggiornare la tua banca dati
      online inserendo nuovi prodotti o nuove categorie compilando le apposite interfacce
      web.

                                                                                                             36
La pagina di inserimento di una nuova categoria
                                                            Creiamo un file php nominato
                                                            nuova_categoria.php

                                                            La parte più importante di questa pagina è
                                                            la maschera di inserimento di un nuova
                                                            categoria.

                                                 Nome Nuova Categoria
                                                 
E’ importante impostare l’attributo name del tag INPUT, perché è in base a quel valore che faremo
riferimento al testo digitato all’interno della casella di testo tramite PHP. Prestare attenzione anche al metodo
di invio del form, in questo caso è il metodo GET.GET                                                       37
Listato pagina nuova_categoria.php

    INSERISCI UNA NUOVA CATEGORIA
    
  INFOTECH IL TUO NEGOZIO DI INFORMATICA ONLINE
  SEZIONE AMMINISTRAZIONE
  
  INSERISCI UNA NUOVA CATEGORIA

            Nome Nuova Categoria
            
                                                                  38
La pagina che salva una nuova categoria
                                                                   Creiamo un file php nominato
                                                                   inserisci_categoria.php.

                                                                   Il primo passo di questo script è quello di
                                                                   leggere il valore digitato nella casella di
                                                                   testo nominata “nome_categoria” della
                                                                   pagina nuova_categoria.php

                                                                   Siccome il form invia i dati attraverso il
                                                                   metodo GET, per leggerlo si usa l’array
                                                                   associativo $_GET

Costruisco la query
Listato pagina inserisci_categoria.php

    AREA AMMINISTRATIVA - INSERISCI CATEGORIA
    
  INFOTECH IL TUO NEGOZIO DI INFORMATICA ONLINE
La pagina di inserimento di un nuovo prodotto
                                                                             Creiamo un file php nominato nuovo_prodotto.php

                                                                             La parte più importante di questa pagina è la
                                                                             maschera di inserimento di un nuovo prodotto.

                                                                             Il menu a tendina categoria è compilato in modo
                                                                             dinamico leggendo il contenuto della tabella
                                                                             categorie.

                                                                             Quindi sarà necessario stabilire una connessione con
                                                                             il server di database MySql.

                                                                             Siccome le pagine dinamiche in genere stabiliscono
                                                                             una connessione con il server di database allora si
                                                                             crea un file esterno nominato database.inc che
                                                                             include le istruzioni per collegarsi al server di
                                                                             database.
La pagina di inserimento di un nuovo prodotto
   
   Descrizione delle funzioni PHP utilizzate:

   mysql_connect stabilice una connessione ad un server MySQL. Il primo parametro indica l’indirizzo
   del server, il secondo la username, il terzo la password (in questo caso la password è nulla).

   mysql_select_db seleziona un database MySQL. Accetta come parametro il nome del database con
   cui si desidera lavorare.

   mysql_error Restituisce il testo dell'errore dall'ultima funzione MySQL, oppure '' (la stringa vuota) se
   nessun errore intercorre. Gli errori ritornano dal database MySQL senza visualizzare i messaggi di
   avvertimento. Si usa invece mysql_error() per recuperare il testo dell'errore.

   die equivale alla funzione exit. Interrompe l’esecuzione dello script e stampa il messaggio specificato.

                                                                                                               42
Elenco di tutte le funzioni mysql: http://www.php.net/manual/it/ref.mysql.php
La pagina di inserimento di un nuovo prodotto
                                            Le funzioni più importanti di questa fase sono:

                                            mysql_query() invia una query al database selezionato

                                            Solo per le istruzioni SELECT mysql_query() restituisce un
                                            identificativo di risorsa o FALSE se la query non è stata eseguita
                                            correttamente.

                                            Per altri tipi di istruzioni SQL(UPDATE,DELETE,INSERT)
                                            mysql_query() restituisce TRUE in caso di successo e FALSE in caso
                                            di errore.

                                                                                                                 43
La pagina di inserimento di un nuovo prodotto
                                            mysql_fetch_array: restituisce un array che corrisponde alla riga
                                            caricata o FALSE se non ci sono più righe.

                                            Si utilizza quando si lavora con un’istruzione SQL di tipo SELECT che
                                            puo’ restituire 0, 1 o più righe di una tabella. Questa funzione ci
                                            permette di scorrere riga per riga la tabella.

                                            Il ciclo while continua finché non è diverso da FALSE.

                                            Si potrebbe anche scrivere così:

                                            $riga=mysql_fetch_array($risultato,MYSQL_ASSOC);
                                            while($riga!=FALSE){
                                              echo “……..”;
                                              $riga=mysql_fetch_array($risultato,MYSQL_ASSOC);
                                            }

                                                                                                       44
La pagina di inserimento di un nuovo prodotto
                                            mysql_fetch_array è una versione estesa di mysql_fetch_row(). Oltre
                                            a memorizzare i dati del risultato in array con indice numerico, questa li
                                            memorizza anche con indici associativi usando i nomi dei campi come
                                            chiavi.

                                            Il secondo argomento opzionale tipo_risultato in mysql_fetch_array()
                                            è una costante e può assumere i seguenti valori: MYSQL_ASSOC,
                                            MYSQL_NUM e MYSQL_BOTH.

                                            Usando MYSQL_BOTH, si ottiene un array con entrambe gli indici
                                            (associativo e numerico). Usando MYSQL_ASSOC, si ottengono solo
                                            gli indici associativi, usando MYSQL_NUM, si ottengono solo gli indici
                                            numerici

                                                                                                         45
La pagina di inserimento di un nuovo prodotto
                                            Notare che come
Listato pagina nuovo_prodotto.php

    INSERISCI UN NUOVO PRODOTTO
    
 INFOTECH IL TUO NEGOZIO DI INFORMATICA ONLINE
 SEZIONE AMMINISTRAZIONE
 
 INSERISCI UN NUOVO PRODOTTO

     Categoria

                                                          47
Listato pagina nuovo_prodotto.php
  
  Nome:
  
  DESCRIZIONE:
  
  QTA:
                                48
Listato pagina nuovo_prodotto.php
   
     PREZZO:
     
     FOTO:
     
                                                                    49
La pagina che salva il prodotto nel database
                        Il compito principale della pagina
                        inserisci_prodotto.php è quello di
                        raccogliere i dati inseriti nel form della
                        pagina nuovo_prodotto.php e di
                        memorizzarli all’interno di apposite variabili.

                        Siccome i dati sono stati inviati con il
                        metodo POST per leggere i valori si usa
                        l’array associativo $_POST.
La pagina che salva il prodotto nel database
                                      La fase successiva è quello di stabilire la
                                      connessione al database.

                                      Sicome dobbiamo salvare un nuovo
                                      prodotto nel database creeremo una query
                                      di tipo inserimento e la eseguiremo tramite
                                      la funzione php mysql_query.

            include "database.inc";

            $query="INSERT INTO Prodotti(Nome,Categoria,Descrizione,Qta,Prezzo,Foto)
            VALUES('$nome_prod','$cat_prod','$descr',$quantita,$prezzo,'$foto')";

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

                                                                                    51
Listato pagina inserisci_prodotto.php

    AREA AMMINISTRATIVA - INSERISCI PRODOTTO
    
  INFOTECH IL TUO NEGOZIO DI INFORMATICA ONLINE
Il catalogo prodotti
                                                                   Creiamo un file nominato prodotti.php

                                                                   I prodotti sono suddivisi per categorie, in questo
                                                                   caso abbiamo 5 categorie(CHIAVETTE, SCHEDE
                                                                   VIDEO, HARD DISK, PORTATILI, SCHEDE
                                                                   AUDIO).

                                                                   Per visualizzare i prodotti che appartengono a una
                                                                   categoria è necessario cliccare sulla voce
                                                                   corrispondente nel menu a sinistra.

                                                                   La cosa più importante di questa pagina è che riceve
                                                                   sempre un parametro nominato id.
                                                                   Notare la URL nella barra degli indirizzi:

                                                                   http://127.0.0.1/infotech/prodotti.php?id=1
                                                                                                         ?id=1

                                                                   Il parametro id in questo caso identifica la
                                                                   categoria.
                                                                   categoria.

                                                                   Ogni volta che clicchiamo su una categoria,
                                                                   richiamiamo sempre la pagina prodotti.php e gli
Questo significa che le voci del menu delle categorie a sinistra   passiamo l’l’id della categoria che desideriamo
sono composte nel modo seguente:                                   visualizzare.

CHIAVETTE
SCHEDE VIDEO
                                                                                                                        53
HARD DISK
E così
  così via……
       via……....
Il catalogo prodotti
                                                         Come prima cosa componiamo il menu delle
                                                         categorie:

                                                         Notare come si compone ogni collegamento
                                                         ipertestuale.

include "database.inc";

$query_cat="SELECT * FROM Categorie";

$risult_cat=mysql_query($query_cat) or die("Errore nella query" . mysql_error());

        while($riga=mysql_fetch_array($risult_cat,MYSQL_ASSOC)){
            echo "" . $riga['Nome'] . " ";
        }

                                                                                                     54
Il catalogo prodotti
                                         Successivamente mostriamo i prodotti che appartengono alla categoria
                                         selezionata.
                                         selezionata.

                                         Quindi come prima cosa dobbiamo leggere il parametro id passato alla
                                         pagina secondo questo formato prodotti.php?id=3
                                                                       prodotti.php?id=3

                                         E’ facile notare che questo modo di passare i parametri è identico a quello
                                         utilizzato dai form con il metodo GET.
                                                                           GET.

                                         Di conseguenza nella pagina prodotti.php per sapere qual è la categoria
                                         selezionata useremo un codice simile al seguente:

                                         $categoria_selezionata=$_GET[“
                                         $categoria_selezionata=$_GET[“id”
                                                                        id”];

                                         Ora costruiamo una query di selezione con un vincolo,
                                                                                      vincolo, cioè
                                                                                               cioè vogliamo
                                         SELEZIONARE tutti i prodotti dalla tabella PRODOTTI DOVE la categoria è
                                         uguale a $categoria_selezionata.

                                         Questo in linguaggio SQL si traduce in un’
                                                                                un’istruzione come la seguente:

                                         SELECT * FROM Prodotti WHERE Categoria=‘
                                                                      Categoria=‘$categoria_selezionata’
                                                                                  $categoria_selezionata’

                                         In questo caso l’l’asterisco indica “prendi tutti i campi della tabella”
                                                                                                         tabella”.

$categoria_selezionata=$_GET['id'];
$query="SELECT * FROM Prodotti WHERE Categoria=$categoria_selezionata";
$risult_prod=mysql_query($query) or die("Errore nella query" . mysql_error());
                                                                                                                     55
Il catalogo prodotti
                                             A questo punto non ci resta che impaginare i risultati.

                                             Notare come è inserita la foto del prodotto.

                                              echo "\n\t ";

                                             In questo esempio tutte le immagini dei prodotti sono memorizzati
                                                                                                   memorizzati all’
                                                                                                               all’interno
                                             della cartella foto presente in C:\
                                                                              C:\Program Files\
                                                                                          Files\EasyPHP1-
                                                                                                EasyPHP1-8\www\
                                                                                                           www\INFOTECH\
                                                                                                               INFOTECH\foto
                                             e sul database si salva solo il nome dell’
                                                                                    dell’immagine. Per farla visionare nella
                                             pagina si utilizza il tag HTML IMG.
                                                                            IMG.

echo "";

        echo "FotoNomeDescrizioneQtaPrezzo";
        while($riga=mysql_fetch_array($risult_prod,MYSQL_ASSOC)){
          echo "\n\t";
          echo "\n\t ";
          echo "\n\t". $riga['NOME'] . "";
          echo "\n\t " . $riga['DESCRIZIONE'] . "";
          echo "\n\t " . $riga['QTA'] . "";
          echo "\n\t" . $riga['PREZZO'] . "€";
          echo "";

        }
echo "";

                                                                                                                    56
Listato pagina prodotti.php
   Nota per testare questa pagina è necessario richiamarla nel modo seguente:
   http://localhost/infotechdb/prodotti.php?id=1

    HOME PAGE - INFOTECH IL TUO NEGOZIO DI INFORMATICA ONLINE
    
  INFOTECH IL TUO NEGOZIO DI INFORMATICA ONLINE
  
  ELENCO PRODOTTI
Listato pagina prodotti.php
        echo "";

        echo "FotoNomeDescrizioneQtaPrezzo";
        while($riga=mysql_fetch_array($risult_prod,MYSQL_ASSOC)){
          echo "\n\t";
          echo "\n\t ";
          echo "\n\t". $riga['NOME'] . "";
          echo "\n\t " . $riga['DESCRIZIONE'] . "";
          echo "\n\t " . $riga['QTA'] . "";
          echo "\n\t" . $riga['PREZZO'] . "€";
          echo "";

        }
        echo "";

        mysql_free_result($risult_cat);

        mysql_free_result($risult_prod);

      ?>

                                                                                                            58
La pagina index.php

  Questa pagina è semplice, l’unica cosa importante è che il collegamento CONSULTA IL
  CATALOGO punta al file prodotti.php.

  Ma abbiamo visto nelle slide precedenti che bisogna passare un parametro a questa pagina,
  quindi il link dovrà essere composto nel modo seguente:

  CONSULTA IL CATALOGO

                                                                                      59
Listato pagina index.php

    HOME PAGE - INFOTECH IL TUO NEGOZIO DI INFORMATICA ONLINE
    
  INFOTECH IL TUO NEGOZIO DI INFORMATICA ONLINE
  
  PAGINA DI PRESENTAZIONE

  Benvenuti nel sito dell'azienda INFOTECH. Qui troverai prodotti di informatica di ultima generazione
  a prezzi imbattibili. Siamo i primi in Italia e trattiamo i nostri prodotti anche con l'estero.
  Consulta il nostro catalogo online cliccando sulla voce sottostante:

  CONSULTA IL CATALOGO

                                                                                                         60
Il file stile.css
/* CSS Document */

h1{
  width:800px;
  font-family:Tahoma,Verdana,Sans-serif;
  font-size:16px;
  background-color:#FFFF99;

}

h2{
  width:800px;
  font-family:Tahoma,Verdana,Sans-serif;
  font-size:14px;
  background-color:#FFFF99;

}

h3{
  width:800px;
  font-family:Tahoma,Verdana,Sans-serif;
  font-size:12px;
  background-color:#FFFF99;

}
table{
  font-family:Tahoma,Verdana,Sans-serif;
  font-size:12px;

}

td.newp{
  background:#CCCCCC;
  font-weight:bold;
}
                                                               61
Il file stile.css
td.categorie{
  color:#FFFFFF;
  background-color:#9CAB10;

}

td.categorie a{
  color:#FFFFFF;
  padding-left:5px;

}

                                                  62
Puoi anche leggere