PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN



Documenti analoghi
MySQL Database Management System

MySQL Database Management System

<?php include './include/page.php';

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

PHP e MySQL. Scripting server-side per accesso a DB MySQL

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

19. LA PROGRAMMAZIONE LATO SERVER

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

La principale particolarità del web dinamico è la possibilità di variare i contenuti delle pagine in base alle richieste degli utenti.

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

Laboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012

LEGGERE E VISUALIZZARE I DATI DI UNA TABELLA IN UNA PAGINA WEB

PHP e Structured Query Language

GERARCHIE RICORSIVE - SQL SERVER 2008

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Raggruppamenti Conti Movimenti

1) GESTIONE DELLE POSTAZIONI REMOTE

Lezione 6: Form 27/04/2012

Utilizzare PHP 5. Le variabili GET e POST

ESEMPI DI FORM (da

ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO

BASI DI DATI Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL

I FORM. L'attributo action contiene l'url del file php a cui devono essere inviati i file per essere elaborati.

Amministrare MySQL con PhpMyAdmin

04/05/2011. Lezione 6: Form

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Dispensa di database Access

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Il linguaggio HTML - Parte 3

Un client su arduino invia i dati acquisiti ad un database

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2013/2014

RELAZIONE TECNICA GESTIONE CARTE DI CREDITO. a cura di EMANUELE CESARI

MANUALE PARCELLA FACILE PLUS INDICE

Concetti fondamentali dei database database Cos'è un database Principali database

Dott.ssa Adriana Pietramala

Applicazione DBToolsSync Manuale Utente

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

PHP Survival Kit (Ovvero gestire un database MySQL tramite PHP)

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

Amministrazione Trasparente

5.2.1 RELAZIONI TRA TABELLE Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

2. Costruire un database con Apache, PHP e MySql

OSSIF WEB. Manuale query builder

Vi ricordiamo che per qualsiasi problema tecnico o informazione potete contattare info@eduitalia.org oppure Francesco al

PHP e MySQL. Guida scaricata da

Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

Database 1 biblioteca universitaria. Testo del quesito

Lavorare con MySQL Parte Seconda.

File, Modifica, Visualizza, Strumenti, Messaggio

Access. P a r t e p r i m a

Esercitazione PAM. (Php Apache MySQL)

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Le query di raggruppamento

HOTEL MANAGER NOTE DI FINE ANNO

Let's start! File > New Project > Ruby > Ruby on Rails Application (events)

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

GESGOLF SMS ONLINE. Manuale per l utente

ISI s.r.l. Corso di Access 05 CREARE UN ELENCO MAILING ED INVIARE MESSAGGI DI POSTA ELETTRONICA Pag. 1/6

ISTRUZIONI INSTALLAZIONE PMANGO

Cookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem:

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

Schede ADI ADP ADEM Prestazioni aggiuntive MMG. - Manuale - Data Solution Provider s.r.l.

Creazione manuale delle tabelle (mediante scrittura del codice SQL corrispondente)

COSTER. Import/Export su SWC701. SwcImportExport

Manuale utente Volta Control

COSTRUZIONE SITO WEB da AlterVista (

APPUNTI DI PHP : V INFORMATICA SEZIONE G

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Invio SMS. DM Board ICS Invio SMS

MANUALE PER L UTILIZZO DELLA FUNZIONE EVENTI Rel.1.2 del 29 gennaio 2004

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

MySQL Command Line Client: operazioni fondamentali

IIW DATABASE ISTRUZIONI

GENERAZIONE PREVENTIVI

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Progetto ittorario Anno scol

PROCEDURA ON-LINE PER L INSERIMENTO E/O LA CONFERMA DEI PERCORSI FORMATIVI PER L APPRENDISTATO PROFESSIONALIZZANTE

Unità 2.1 Comandi sui database

User Tools: DataBase Manager

Questa guida vi illustrerà i principali passaggi da eseguire per l'inserimento dei Bandi di gara.

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala

Manuale Utente Albo Pretorio GA

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.

Interazione con l utente : i moduli.

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

MANUALE UTENTE. In questo manuale verranno descritte tutte le sue funzioni. Il sistema OTRS è raggiungibile al seguente link:

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Procedura SMS. Manuale Utente

Transcript:

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN Il metodo migliore per creare nuovi DB è quello di usare l interfaccia del PHPMYADMIN (che viene installata automaticamente con il pacchetto easy php : www.easyphp.org) Dalla HomePage che si apre lanciando easyphp selezionare la gestione di phpmyadmin: Seguiremo ora lo sviluppo di un esempio pratico: la creazione di un DB per la gestione di un ipotetica area NEWS all interno di un sito. Per prima cosa ci serve ragionare sui campi di cui abbiamo bisogno per il nostro Database: nel nostro caso ci serve una tabella contenente i seguenti campi:

- id: chiave primaria che identifica in maniera univoca i nostri record - titolo - abstract - testo - data Per prima cosa creiamo un nuovo Database che chiamiamo test_news : Nota: selezionare come tipo di caratteri latin1_swdish_ci per gestire al meglio caratteri accentati Dopo aver immesso i dati, ciccare sul pulsante crea. A questo punto possiamo creare la tabella (che chiameremo news ) del nostro DB e indicare quanti campi ci servono (5 nel nostro esempio): Dopo aver cliccato su esegui inseriamo i nomi e le proprietà dei nostri campi:

Nel nostro esempio abbiamo impostato i campi nel seguente modo: - id: tipo INT (numero intero); EXTRA: auto_increment (ad ogni nuovo record viene assegnato un nuovo ID incrementale); CHIAVE PRIMARIA - titolo: tipo TEXT - abstract: tipo TEXT - testo: tipo LONGTEXT - data: tipo DATE Ciccare su SALVA : apparirà una schermata con il riassunto della tabella creata:

Ovviamente è possibile modificare/aggiungere/cancellare i campi anche successivamente. A questo punto il nostro DB è pronto per essere utilizzato. INTERFACCIAMENTO AL DATABASE DA PHP Per prima cosa è utile preparare un file php di connessione al nostro database, che potremo utilizzare nel nostro sito ogni volta che abbiamo bisogno di utilizzare il DB. Prepariamo un file che chiamiamo connect.php in cui inseriamo il seguente codice: FILE connect.php : //definisco i parametri della connessione: nomeserver,username,password e nome db $server="localhost"; $username="root"; $password="";

$nomedb="test_news"; //mi connetto al server mysql $db=mysql_connect('localhost', 'root', ''); if ($db == FALSE) { die ("Errore nella connessione."); //mi connetto al database specificato nella variabile $nomedb mysql_select_db($nomedb, $db) or die ("Errore nella selezione del database"); INSERIMENTO RECORD PRENDENDO I DATI DA UN FORM Nella stragrande maggioranza dei casi l aggiornamento del nostro DB sarà effettuato prendendo i dati da un form di inserimento. La prima cosa da fare è quindi di creare un semplice form in html che richiede l inserimento dei campi relativi al nostro DB: creiamo un file html che chiamiamo form_news.htm FILE: form_news.htm <html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <head> <title>inserisci News</title> </head> <body bgcolor=white> <div align="center">inserimento NUOVA NEWS</div> <form method=post action="inserisci_news.php"> Giorno: <input type="text" name="giorno" size=2> Mese: <input type="text" name="mese" size=2> Anno: <input type="text" name="anno" size=4> <br><br> Titolo:<br> <input type="text" name="titolo" size=50><br><br> Abstract: <br> <textarea cols="30" rows="4" name="abstract"></textarea><br><br> Testo: <br> <textarea cols="30" rows="4" name="testo"></textarea> </form> </body> </html> Da notare nell apertura del form che è stato specificato come method POST verso la pagina inserisci_news.php. La sostanziale differenza tra il metodo POST e quello GET è che con il metodo POST i dati vengono inviati in maniera invisibile da una pagina all altra (e vanno recuperati nella pagina di destinazione tramite il comando $_POST. Utilizzando il metodo GET i dati vengono passati alla pagina di destinazione accodati all indirizzo della pagina, e vanno recuperati tramite il comando $_GET. Ora creiamo il file inserisci_news.php contenente il codice PHP per l inserimento dei dati nel nostro DB:

FILE inserisci_news.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>inserimento NEWS</title></head> <body> // CONNESSIONE AL DATABASE // RECUPERA DATI DAL FORM $giorno = $_POST['giorno']; $mese = $_POST['mese']; $anno = $_POST['anno']; // CREO DATA NEL FORMATO ANNO/MESE/GIORNO $data= $anno."-".$mese."-".$giorno; // RECUPERA DATI DAL FORM $titolo = $_POST['titolo']; $titolo = addslashes(stripslashes($titolo)); $abstract =$_POST['abstract']; $abstract = addslashes(stripslashes($abstract)); $testo =$_POST['testo']; $testo = addslashes(stripslashes($testo)); // INSERISCI NUOVO ARTICOLI IN DATABASE $query = "INSERT INTO `news` ( `id`, `titolo`, `abstract`, `testo`, `data`) VALUES (NULL, '$titolo', '$abstract', '$testo', '$data')"; if (@mysql_query($query)) { echo ("<div align=center class=testo> <b>record inserito con successo.</b></div>"); else { echo ("<div align=center class=testo> <b>errore di inserimento record: ". mysql_error()."</b></div>"); </body> </html> Analizziamo ora il codice PHP per capire i vari passaggi. Per prima cosa serve connettersi al Database, richiamando il file connect.php che contiene i parametri x la connessione al DB test_news :

Poi bisogna recuperare i dati inseriti e passati dal form. Il comando (avendo utilizzato il metodo POST del form) è nella forma: $nomevariabile= $_POST['nome_campo_form']; Per prima cosa vengono recuperi i dati per la data. Le date nei DB mysql vengono memorizzate nel formato Anno/Mese/Giorno Per prima cosa recuperiamo i dati (che abbiamo richiesto in campi separati nel form, per evitare errori nel formato della data): $giorno = $_POST['giorno']; $mese = $_POST['mese']; $anno = $_POST['anno']; Poi, andiamo a creare la data nel formato corretto per il DB, creando la nuova variabile $data (composta dalla avriabile $anno + il carattere - + $mese etc ): $data= $anno."-".$mese."-".$giorno; Fatto questo andiamo a recuperare gli altri campi di testo. Per questi campi dobbiamo prevedere che l utente può inserire delle parole con apostrofi o virgolette. Ciò rischierebbe di confondere questi caratteri con la virgoletta di chiusura nell inserimento del record. Per evitare ciò è necessario specificare che le eventuali virgolette (o apostrofi) inseriti sono caratteri da considerare tali e quali. Ciò viene fatto aggiungendo prima di ogni virgoletta inserita un back slash (\). Per far questo si usa il seguente comando: $variabile = addslashes(stripslashes($variabile)); Quindi per ogni campo del nostro form, recuperiamo i dati e aggiungiamo i back slash: $titolo = $_POST['titolo']; $titolo = addslashes(stripslashes($titolo)); $abstract =$_POST['abstract']; $abstract = addslashes(stripslashes($abstract)); $testo =$_POST['testo']; $testo = addslashes(stripslashes($testo)); A questo punto abbiamo tutti i nostri dati e non ci rimane che inserirli nel nostro DB. Per farlo si utilizza una query SQL di inserimento, che ha la seguente sintassi: INSERT INTO `nome_tabella` ( `campo1`, `campo2`,, `campon`) VALUES ( valore1', 'valore2,., valoren) Nel nostro esempio il primo campo ( id ) deve essere un numero che viene incrementato automaticamente. Poiché abbiamo specificato nelle caratteristiche del DB come proprietà EXTRA AUTO INCREMENT (e lo abbiamo

indicato come campo numerico e chiave primaria), basterà nella query dargli valore NULL e in automatico verrà inserito un numero incrementale. In php quindi creiamo una variabile $query contenente la QUERY SQL per il nostro inserimento: $query = "INSERT INTO `news` ( `id`, `titolo`, `abstract`, `testo`, `data`) VALUES (NULL, '$titolo', '$abstract', '$testo', '$data')"; Poi, diciamo di eseguire la query contenuta nella variabile $query e di dare messaggio di conferma se la query viene eseguita correttamente o di errore in caso contrario: if (@mysql_query($query)) { echo ("<div align=center class=testo> <b>record inserito con successo.</b></div>"); else { echo ("<div align=center class=testo> <b>errore di inserimento record: ". mysql_error()."</b></div>"); MODIFICA/CANCELLAZIONE RECORD La prima pagina da preparare è una pagina contenente l elenco dei record esistenti nel DB per scegliere quello da modificare/cancellare: File: modifica.php // CONNESSIONE AL DATABASE // CREAZIONE QUERY SQL $rs = mysql_query("select * FROM news ORDER BY id"); // CONTROLLA QUANTI RECORD SODDISFANO LA QUERY E CREA UN CICLO IN CUI LEGGE I CAMPI DAI RECORD $nr = mysql_num_rows($rs); if ($nr!= 0){ for($x = 0; $x < $nr; $x++){ $row = mysql_fetch_assoc($rs); $data=$row['data']; $titolo=$row['titolo']; $id=$row['id']; // CREA CODICE HTML

<table widt=80% border=1><tr><td>data</td><td>titolo</td></tr> <tr><td> echo $data;</td><td> echo $titolo;</td><td><a href="modifica2.php?id= echo $id;>">modifica</a></td><td><a href="cancella.php?id= echo $id;>">cancella</a></td></tr> </table> // PASSA A RECORD SUCCESSIVO Con il codice mostrato sopra viene creato un elenco di tutti i record presenti nel DB: la query: $rs = mysql_query("select * FROM news ORDER BY id"); seleziona tutti I record ( * ) dalla tabella news, ordinandoli per id $nr = mysql_num_rows($rs); Con questa riga viene specificato di contare I record selezionati Se la variabile nr risulta maggiore di zero, viene creato un ciclo che si ripete per nr volte, in cui vengono letti i dati dal DB: if ($nr!= 0){ for($x = 0; $x < $nr; $x++){ $row = mysql_fetch_assoc($rs); $data=$row['data']; $titolo=$row['titolo']; $id=$row['id']; Per ultima cosa viene creata una tabelle html, in cui si scrivono i dati recuperati e si crea il link per la modifica o cancellazione del DB, passando alla pagina linkata la variabile id : <a href="modifica2.php?id= echo $id;>">modifica</a> Vediamo ora la pagina per la MODIFICA del record selezionato: File: modifica2.php // CONNESSIONE AL DATABASE $id=$_get['id']; // RECUPERA VARIABILE ID DA PAGINA PRECEDENTE $rs = mysql_query("select * FROM news where id='$id'"); // QUERY SQL

$row = mysql_fetch_assoc($rs); // DEFINISCE VARIABILE $row // CREA CODICE HTML <form method=post action="modifica3.php"> Data: <input type="text" name="data" size=10 value=" echo $row['data']"> <br><br> Titolo:<br> <input type="text" name="titolo" size=50 value=" echo $row['titolo']"><br><br> Abstract: <br> <textarea cols="30" rows="4" name="abstract" > echo $row['abstract']</textarea><br><br> Testo: <br> <textarea cols="30" rows="4" name="testo"> echo $row['testo']</textarea><br><br> <input type="hidden" name="id" value=" echo $row['id']"> <input type="submit"> </form> Il codice qui sopra è molto semplice e intuitivo: viene letto il record dalla tabella news, corrispondente al id scelto: ("SELECT * FROM news where id='$id'"); dopodichè viene create un form html con all interno I dati presi dal DB (notare la riga in cui viene passato il valore $id tramite un campo nascosto del form) L ultima pagina è quella con la raccolta dei dati dal form, e l aggiornanto del record: File: modifica3.php // CONNESSIONE AL DATABASE // RECUPERA DATI DAL FORM $id=$_post['id']; $data=$_post['data']; $titolo = $_POST['titolo']; $titolo = addslashes(stripslashes($titolo)); // AGGIUNGE BACKSLASHES PRIMA DI APOSTROFI/VIRGOLETTE $abstract =$_POST['abstract']; $abstract = addslashes(stripslashes($abstract)); // AGGIUNGE BACKSLASHES PRIMA DI APOSTROFI/VIRGOLETTE $testo =$_POST['testo']; $testo = addslashes(stripslashes($testo)); // AGGIUNGE BACKSLASHES PRIMA DI APOSTROFI/VIRGOLETTE

// AGGIORNA RECORD IN DATABASE $query = "UPDATE news set `data`='$data', `titolo`='$titolo', `abstract`='$abstract', `testo`='$testo' WHERE id='$id'" ; if (@mysql_query($query)) { echo ("<div align=center class=testo> <b>record modificato con successo.</b></div>"); else { echo ("<div align=center class=testo> <b>errore di inserimento record: ". mysql_error()."</b></div>"); Anche questo codice risulta semplice. Da notare: la rielaborazione delle stringhe per la gestione di virgolette e apostrofi: $testo =$_POST['testo']; $testo = addslashes(stripslashes($testo)); La sintassi della query SQL per fare l UPDATE del record: $query = "UPDATE news set WHERE id='$id'" ; `data`='$data', `titolo`='$titolo', `abstract`='$abstract', `testo`='$testo' L ultima pagina che rimane è quella per la cancellazione di un record: File: cancella.php // CONNESSIONE AL DATABASE $id=$_get['id']; $sql = "DELETE FROM news WHERE id=$id"; if (@mysql_query($sql)) { echo ("<div align=center class=testo> <b>record eliminato con successo.</b></div>"); else { echo ("<div align=center class=testo> <b>errore: ". mysql_error()."</b></div>");