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



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

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

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

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2016/2017

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2016/2017

Connessione con MySQL

Connessione con MySQL

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

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

MySQL Database Management System

Lavorare con MySQL Parte Seconda.

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

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

Gestione Orario Lezioni: Schema del Database

PHP e Structured Query Language

Laboratorio di Progettazione Web

PHP e MySQL. Guida scaricata da

APPUNTI DI PHP : V INFORMATICA SEZIONE G

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database

PHP 5. Accesso a database

file:///c:/users/andrea/appdata/local/temp/mysql-1.html

Introduzione a MySQL

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN

MySQL Database Management System

19. LA PROGRAMMAZIONE LATO SERVER

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server)

Un client su arduino invia i dati acquisiti ad un database


Esercitazione: Il DBMS MySQL

Architettura a tre livelli (1)

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

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

DBMS (Data Base Management System)

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

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

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

Indice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base Variabili, operatori e commenti Array...

Remote SQL Command Execution

Esercitazione 8. Basi di dati e web

Preparazione. Introduzione a MySQL: costruzione di una base di dati e gestione degli accessi. Accesso all area condivisa. Avvio Server MySQL

FASE 1: Definizione del tema, degli obiettivi e del target con il cliente... (da cui dipendono le scelte successive!)

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

Progettazione Web Applicazioni client-server

Lezione 9. Applicazioni tradizionali

Laboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali

Corso breve su automazione d'ufficio

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

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

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

User Tools: DataBase Manager

Basi di Da( MySQL & MySQL Workbench. Anna Monreale

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE

GERARCHIE RICORSIVE - SQL SERVER 2008

Esercitazione PAM. (Php Apache MySQL)

Lezione 8. Metadati, Viste e Trigger

DBMS: MySQL CORSO DI BASI DI DATI 2014/2015

Definizione di domini

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

MySQL Controllare gli accessi alla base di dati A cura di Silvio Bonechi per

Introduzione JDBC interfaccia java.sql driver caricare i driver

Corso sul linguaggio SQL

Tool. Basi di Dati e Sistemi Informativi Prof. Marco Di Felice Dott.sa Sara Zuppiroli A.A

MySQL Command Line Client: operazioni fondamentali

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

Laboratorio Progettazione Web Array in PHP Lezione 7. Andrea Marchetti IIT-CNR 2011/2012

Strumenti Software per Esercitazioni (ambiente Windows) Basi di Dati L LS Ing. Gestionale


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

Lavorare con MySQL Parte Prima.

L interfaccia a riga di comando di MySql

Backup e Restore di un database PostgreSQL Sandro Fioravanti INFN-LNF

Corso sul linguaggio SQL

Dispensa di database Access

Basi di Dati: Corso di laboratorio

Utilizzare PHP 5. Le variabili GET e POST

Introduzione a phpmyadmin

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

ISTRUZIONI INSTALLAZIONE PMANGO

Esercitazione sulle libpq - libreria C per PostgreSQL

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Sistemi Mobili e Wireless Android - Dati persistenti: SQLite

PHP - MYSQL Ing. Bruno Di Caprio

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

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

Laboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE

Esercitazione 01: DDL e DML di base

Metodi per la Gestione dei Dati (lezioni di laboratorio)

LA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Laboratorio di Basi di Dati e Web

LA REALIZZAZIONE DI APPLICAZIONI. Quattro parti: Gestione dati. Business rules. Logica applicativa. Interfaccia utente. Molte possibili architetture

Metodi per la Gestione dei Dati (lezioni di laboratorio)

Unità 2.1 Comandi sui database

bool mysql_select_db([string database_name [,resource link_identifier]]) Connessione ad un server MySQL vuole conettere

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

Eprogram ITIS V anno Unità 6 - PHP e MySQL

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Capitolo 13. Interrogare una base di dati

Introduzione ad EasyPHP

Aspetti applicativi e tecnologia

Transcript:

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

Architettura di una applicazione Web Browser Web HTTP Server Web API Dati Presentation Application Storage

PHP e DataBase Quando i dati sono molti e salvare i dati su filesystem risulta inefficiente conviene usare il supporto di una base di dati PHP fornisce API (funzioni di interfaccia) per accedere ai database, ma essenzialmente si usa lo script SQL per lavorare sui DB. PHP è tipicamente usato con MySQL, un database opensource www.mysql.org PHP fornisce API anche per altri DB come Postgres, Ms Access, Oracle

MySQL MySQL è disponibile su tutte le piattaforme (Windows, MacOs, Linux) L interazione con il server MySQL può avvenire da riga di comando (shell) digitando i comandi, o le query SQL, per creare database, tabelle, inserire dati, fare ricerche etc. L interazione può avvenire anche tramite interfaccia grafica, PhpMyAdmin http://www.phpmyadmin.net/ MySQL Workbench http://www.mysql.com/products/workbench/

PHPMyAdmin GUI

MySQL Workbench GUI

PhpMyAdmin Applicazione web fatta in PHP che permette di gestire MYSQL E già incluso nei pacchetti LAMP http://localhost/phpmyadmin/ su MAMP e XAMPP http://localhost/mysql su EasyPhp

PHPMyAdmin Tutte le operazioni possibili da PHPMyAdmin si possono fare da PHP Noi lo useremo per Gestire Utenti (impostare password) Creare un DB Creare una Tabella Nazione (id, Nazione, Capitale) Popolare la tabella INSERT INTO nazione (`nome`, `capitale`) VALUES ('Italia', 'Roma')"; INSERT INTO nazione (`nome`, `capitale`) VALUES (Francia', Parigi')"; http://localhost/phpmyadmin/

MySQL PHP API PHP mette a disposizione circa 50 funzioni per interagire con MySQL http://www.php.net/manual/en/ref.mysql.php Molte di queste funzioni possono essere sostituite con la funzione mysql_query(«sql command»)

MySQL PHP API Apertura connessione al server mysql_connect() Creazione/Selezione DB mysql_query(«sql») Esecuzione istruzione SQL Recupero record selezionati mysql_fetch_assoc() Chiusura connessione mysql_close()

Connessione al server MySQL <?PHP //Connessione al server $conn = mysql_connect("localhost","root","pippo"); if(!$conn) die("errore connessione".mysql_errno()); else echo ("Connessione al server mysql riuscita!");?> die stampa il msg quindi interrompe l'esecuzione del programma. Se non voglio interrompere uso echo o print $conn sarà la variabile che inserirò in tutte le successive funzioni utilizzate per accedere al server MySql. In questo modo posso accedere a più server MySQL dallo stesso programma mysql_error stampa l'errore dell'ultima chiamata ad una funzione mysql

Selezione del DB // Selezione del DB $ok = mysql_select_db("lpw", $conn); if(!$ok) die("errore selez. DB lpw".mysql_errno()); else echo ("Selezione DB lpw riuscita!</br>"); Se interagisco con un solo server posso fare a meno di usare la Variabile $conn

Selezione del DB in SQL // Selezione del DB $sql = "USE lpw"; $res = mysql_query($sql); if(!$res) die("errore selez. DB lpw".mysql_errno()); else echo ("Selezione DB lpw riuscita!</br>"); Non ho usato la Variabile $conn

Inserimento dati $sql="insert INTO nazione (`nazione`,`capitale`) VALUES ('Turchia','Ankhara )"; $res=mysql_query($sql); if(!$res) die("errore inserimento".mysql_errno()); else echo ("Inserimento riuscito!</br>");

Modifica dati // Modifica dati $sql = "UPDATE nazione SET capitale='ankara WHERE nazione='turchia'"; $res=mysql_query($sql); if(!$res) echo("errore modifica".mysql_errno()); else echo ("Modifica riuscita!</br>");

Cancellazione dati // Modifica dati $sql="delete FROM nazione WHERE nazione='turchia'"; $res=mysql_query($sql); if(!$res) echo("errore cancell.".mysql_errno()); else echo ("Cancellazione riuscita!</br>");

Selezione dati // Selezione dati $sql="select * FROM nazione"; $res=mysql_query($sql); if(!$res) echo("errore selezione".mysql_errno()); else echo ("Selezione iuscita!</br>"); $res se tutto va bene contiene i record selezionati Altrimenti contiene false Nelle prossime slides vedremo come accedere ai record selezionati

Recupero record SELECT * FROM nazione; Id Nazione Capitale 1 Italia Roma 2 Inghilterra Londra record 3 Francia Parigi 4 Spagna Madrid Il risultato di una SELECT è una lista di records: PHP offre 3 funzioni per accedere a questa lista.

Recupero record // Recupero i dati mettendoli in un array numerico while($record=mysql_fetch_row($res)) echo $record[0]."-".$record[1]."-".$record[2]."</br>"; // Recupero i dati mettendoli in un array associativo while($record=mysql_fetch_assoc($res)) echo $record['id']."-".$record['nazione']."-".$record['capitale']."</br>"; // Recupero i dati mettendoli in un array numerico-associativo while($record=mysql_fetch_array($res)) echo $record[0]."-".$record['nazione']."-".$record['capitale']."</br>";

4. Controlli sui risultati di una SELECT $sql="select * FROM agenda"; $res=mysql_query($sql); $rows=mysql_num_rows($res); echo sono stati trovati $rows record ; if ($rows==0) { // controllo se la risposta è vuota echo "non ci sono record"; } else { // altrimenti li visualizzo while ($record=mysql_fetch_assoc($res)) { echo ID: $record[id] <BR> ; echo Nome: $record[nome] <BR> ; echo Cognome:$record[Cognome] <BR> ; } }

5. Chiusura della connessione mysql_close($conn);

Riferimenti MySQL: http://dev.mysql.com/doc/refman/5.0/en/index.h tml http://dev.mysql.com/doc/refman/5.0/en/sqlsyntax.html Php: http://www.php.net/manual/en/ref.mysql.php

Esercizio Creare una tabella geografia all'interno del nostro DB lpwdb geografia (id, nazione, capitale) usare phpadmin o uno script PHP Creare uno script PHP che consenta: inserire un nuovo record visualizzi i record già presenti consenta di cancellare i record presenti consenta di editare i record presenti

TABELLA CREATE TABLE geografia ( idgeografia INT AUTO_INCREMENT, nazione VARCHAR(16) NOT NULL, capitale VARCHAR(16) NOT NULL, PRIMARY KEY ('idgeografia'), UNIQUE INDEX 'nazione_unique` ('nazione' ASC), UNIQUE INDEX 'capitale_unique' ('capitale` ASC) ) DEFAULT CHARACTER SET = latin1 COLLATE = latin1_bin;