Registrazione
Categorie
-
Articoli recenti
Commenti recenti
- Claudio su Ellisse: formula di sdoppiamento
- Alejandro Zarate su [:it]TPSIT: Test sulla teoria dell’informazione e codici[:]
- Francesco Bragadin su [:it]Raspberry – bridge wifi – ethernet[:]
- Andrea Pigozzo su [:it]Raspberry – bridge wifi – ethernet[:]
- Francesco Bragadin su [:it]TPSIT: Test sulla teoria dell’informazione e codici[:]
Meta
Categorie
-
Articoli recenti
Commenti recenti
- Claudio su Ellisse: formula di sdoppiamento
- Alejandro Zarate su [:it]TPSIT: Test sulla teoria dell’informazione e codici[:]
- Francesco Bragadin su [:it]Raspberry – bridge wifi – ethernet[:]
- Andrea Pigozzo su [:it]Raspberry – bridge wifi – ethernet[:]
- Francesco Bragadin su [:it]TPSIT: Test sulla teoria dell’informazione e codici[:]
Meta
PHP – Cancellazione file
Pubblicato in Senza categoria
Lascia un commento
PHP – Classi in PHP – introduzione
Richiamo sulle classi in PHP
Ho creato la funzionalità della mia classe, ci occorre un modo per richiamarle: questo diventa possibile tramite le istanze della classe (o oggetti). Per dichiarare un’istanza si usa l’operatore new
seguito dal nome della classe ed opzionalmente da una lista di parametri richiesti dalla funzione costruttore.
In questo caso ho modificato il calore della variabile a assegnandogli il valore 100 e lo mostrato a video.
Se si volesse richiamare un attributo all’interno del metodo si usa l’operatore this.
Si noti che ho istanziato myclass2 che imposta a 20 l’attributo nel metodo e che myclass_1 utilizza.
Pubblicato in Senza categoria
Lascia un commento
PHP – CMS – Creazione tabella per la gestione dei dati
Lo scopo di questa tabella è quello di descrivere tutte le tabelle di dati e memorizzare le informazioni necessarie per la costruzione delle interfacce, i form, per la gestione dei dati.
Vado ad analizzare i campi creati:
- il secondo campo
tabella
(VARCHAR(20)
) dove memorizzeremo il nome della tabella di appartenenza del campo, nel nostro caso i valori saranno “news” o “autori” - Il terzo campo sarà il
nome
del campo (VARCHAR(20)
), quindi per la tabella “news” avremoid
,titolo
,testo
e così via - Quarto campo
label
(VARCHAR(50)
) per definire l’etichetta del campo nel form, dato che il nome del campo non può essere utilizzato per convenzione. Per esempio nel nostro caso potremmo avere “data_pubblicazione” e label “Data pubblicazione”. - Il quinto campo sarà un
ENUM
con valori ‘0’ o ‘1’: lo chiameremochiave
e servirà per definire la chiave primaria. - Il sesto campo,
tipo_input
, sarà unENUM
contenente tutte le possibili opzioni di inputtext
,hidden
,password
,search
,email
,number
,date
,checkbox
,checkboxlist
,radiolist
,select
etextarea
). Potremmo averetext
per il titolo della news e unatextarea
per il testo, un hidden per l’id ecc. - Il campo successivo sarà un
ENUM
e servirà per definire se un campo è obbligatorio o meno ed effettuare i relativi controlli server-side, ovviamente questa opzione può essere sfruttata anche per creare controlli client-side. Simile la funzione del campocontrollo
che sarà sempre funzionale ai controlli server-side e potremo scegliere fra le opzionistring
oint
. - Abbiamo ora un terzetto di campi che serviranno per la creazione delle SELECT e quindi per la gestione delle relazioni uno a molti: se il controllo sarà quindi una
SELECT
dovremo indicare da quale tabella estrarre i dati, quale campo utilizzare per il valore della option HTML e quale nel testo visibile. Si tratta quindi di treVARCHAR
:origine_tabella
,origine_id
,origine_testo
. - I successivi tre campi hanno uno scopo simile ma questa volta declinato sulle tabelle di relazione molti a molti (il tipo di campo normalmente associato sarà una
checkboxlist
):rel_tabella
,rel_id1
,rel_id2
, tuttiVARCHAR
. - L’ultimo campo,
ordine
, e sarà unINT
, o undecimal(10,3)
, e servirà per decidere l’ordine dei campi nei form di inserimento e modifica.
Adeso devo popolare la tabella:
Ora nella tabella struttura
ci sono tutte le informazioni e le meta-informazioni per gestire le tabelle “news” e “autori”: eseguendo una SELECT
saremo in grado di costruire i form e le liste per la gestione dei dati.
Pubblicato in Senza categoria
Lascia un commento
PHP – CMS – Creazione ambiente InnoDB vs MyISAM e Collate
Creo il database che chiamerò GIORNALE.
Ecco il codice sorgente per la creazione del database
Creo due tabelle una delle news ed una degli autori.
Quindi ogni autore può creare più news.
Creo la tabella delle news:
utf8_unicode_ci significa usare le regole dell’Occial Unicode che è utilizzato nella maggior parte delle lingue. ci significa case insensitive.
Affermare che ENGINE=MyISAM significa creare una struttura del database diversa da quella di default che si chiama InnoDB.
MyISAM
- Ogni tabella può raggiungere al massimo 256TB.
- si creano su disco tre file: .frm che contiene il formato della tabella, .myd che contiene i dati, .myi che contiene gli indici
- il lock avviene a livello di tabella e non di record e va bene per tabelle che hanno poca movimentazione
InnoDB
- Storage di default
- il lock avviene a livello di record
- supporta il mondo transazionale ossia solo con l’operazione di commit avviene l’effettiva scrittura sul database
- creazione di foreign keys per mantenere un database relazionale
- permette di eseguire query su righe che, contemporaneamente, sono in fase di aggiornamento, leggendo i dati così come apparivano prima delle modifiche in corso
- ogni tabella può raggiungere i 64TB
COLLATE
Serve per dire al DBMS come scrivere i caratteri che sono memorizzati nella relativa colonna e quanto spazio essa deve occupare.
- utf8mb4 al massimo quattro byte per carattere
- utf8mb3 al massimo 3 byte per carattere
- utf8 è un alias utf8mb3
Vado a adesso a definire al seconda tabella, quella degli autori
Infine creo la chiave esterna nella tabella della news:
Da notare la sintassi per la creazione della chiave esterna, come buona pratica quindi prima si creano le tabelle e successivamente le chiavi esterne.
Pubblicato in Senza categoria
Lascia un commento
PHP – CMS – PDO – Introduzione
Si chiamano Content Management System le applicazioni di gestione dei contenuti dei siti che consentono di inserire, modificare e rendere visibili articoli, banner, immagini e link senza ricorrere a sistemi di sviluppo.
Un Content Management System è un’applicazione che consente di variare i contenuti di un sito senza intervenire sulle pagine o sul database da cui sono lette le informazioni.
Il suo vantaggio è che una volta creata la struttura che dinamicamente produce le pagine, i contenuti possono essere inseriti e variati senza conoscenze tecniche di sviluppo.
Tecnicamente si tratta di una applicazione, spesso usabile mediante il browser, che consente con un front-end di semplice uso l’inserimento e la gestione di articoli, schede, elenchi, link e banner. Tali informazioni sono poste nel database dal quale poi il motore dinamico del sito le estrae per produrre le pagine che saranno visualizzate al visitatore. Chi inserisce i contenuti, in sostanza, non deve avere conoscenze tecniche. Deve saper scrivere e quasi niente altro.
Pubblicato in Senza categoria
Lascia un commento
PHP – Esempio completo form di immissione – interrogazione – form di output in mysqli
Lo scopo del progetto è quello di realizzare un elenco di iscritti ad un corso; si possono cancellare, aggiornare ed inserire i vari partecipanti.
La struttura si basa su un’unica tabella ed attraverso un programma in php si aggiorna il database e si richiama in maniera opportuna la pagina html.
Cercherò di commentare ogni riga di codice per permettere una comprensione precisa del codice e del flusso del programma.
Creo il database corso_2016
Ecco il file in formato pdf con il file php.
Adesso creo la tabella:
Ecco il file in pdf per la creazione della tabella:
La struttura della pagina sarà impostata sulla variabile $azione
che determinerà cosa la pagina PHP dovrà fare; si avrà due tipi di operazioni, in scrittura e in lettura, che corrisponderanno a funzioni con cui restituire output solo in caso di lettura.
La variabile sarà gestita da un doppio switch
: il primo per le operazioni che non prevedono output (insert e delete), il secondo per quelle che li prevedono come la creazione del form, e la lista di tutti i record presenti in tabella.
Ogni case
dello switch
corrisponderà a una funzione, in caso di output verrà restituita una variabile contenente la stringa HTML da stampare.
la variabile azione inizialmente è vuota ma può assumere solo quei quatto valori.
Quindi entro nel primo switch:
che verrà usato solo per salvare un record o cancellarne uno; sempre che la variabile azione assuma il valore salva o elimina, comunque alla fine il valore che prende è lista. E quindi si accede al secondo switch.
La prima volta che si esegue il php il valore della variabile azione è nullo per cui si va subito alla funzione lista.
Da notare come in questo switch si usi il comando header che chiama la pagina html passandogli la variabile contenuto che è composta concatenando la variabile out che si vedrà nella funzione lista, form, salva e cancellazione.
Ecco la pagina html.
Ho usato un css esterno. Si noti il comando get per poi passarlo alla variabile contenuto e quindi si usa echo per comporre la pagina html. FANTASTICO!!!!!
Ecco il file html con nome EsMysqli_ritorno.html
Adesso analizzo la funzione lista()
La funzione lista compone la variabile out concatenando tutta la pagina html (FANTASTICO!) poi per inserire un nuovo record uso href con il link alla pagina php passando il valore della variabile azione a form che poi verrà usata nello switch per chiamare la funzione form.
Usa poi il pulsante da cancellare valorizzando la variabile azione con l valore elimina per chiamare nel php la funzione elimina.
Effettuo poi una select con bind prepare ed execute e mostro l’esito della select mostrandola in forma tabellare.
Ecco l’output:
Ecco la funzione form:
Alla fine della funzione form la variabile azione viene valorizzata cn il valore salva che fa rientrare nel primo switch e mostra nuovamente la lista con il valore aggiornato.
Ecco la funzione elimina:
la quale alla fine mostra nuovamente la lista senza il record precedentemente eliminato.
>Ecco il file php completo:
Questo è un metodo per poter creare quindi una pagina dinamica che interroga un database per poi mostrare in una pagine l’elenco e mantenerlo.
Pubblicato in Senza categoria
Lascia un commento
PDO – modello transazionale
Il modello transazionale si basa sul concetto che ogni azione che viene eseguita su un database ad esempio insert, delete, o alter avvenga effettivamente.
Si parla perciò di consistenza di database. Non deve mai avvenire che un inserimento od una cancellazione crei una situazione in cui un altro utente legga il dato che in realtà non sia più presente nel database.
In pratica finchè non avviene l’operazione di commit della transazione ossia la conferma dell’operazione nessuno può leggere la tabella. E’ come se mettessimo un blocco esclusivo sulla tabella finchè non decido io quando deve avvenire.
Il primo passo è connettersi al database e settare gli errori:
A questo punto arriva il nucleo del modello transazionale:
Se dovesse andare male l’inserimento il database effettua un rollback ossia si torna indietro. Tutte le istruzioni tra transaction e commit vengono annullate dal rollback.
Ecco il codice sorgente senza ovali di evidenziazione.
Pubblicato in Senza categoria
Lascia un commento
PHP – PDO – Estrazione dei dati da un database -select
SELECT senza condizioni di ricerca
Questa semplice SELECT non ha alcun parametro in ogni caso utilizzo il metodo rowCount che mi fornisce il numero di linee estratte.
SELECT CON condizioni di ricerca
In questo caso devo usare il bindParam per dire il tipo di campo che vado ad estrarre:
ESTRAZIONE DI PIU’ RIGHE CON COMANDO FETCH
In questo caso ho usato il metodo FETCH invece PDO::FETCH_ASSOC
ci dice che stiamo creando un array associativo usando come chiavi i nomi dei campi.
ESTRAZIONE DI PIU’ RIGHE CON IL METODO FETCHALL
In questo caso ho impostato l’output in formato JSON oppure posso anche usare il seguente comando:
ho usato il comando foreach molto comodo.
Da un punto di vista tecnico fetchAll
è più veloce rispetto al semplice fetch
ma consuma un maggiore quantitativo di memoria.
Pubblicato in Senza categoria
Lascia un commento
PHP – PDO – Inserimento – prepare – bind – execute
Per inserire un valore uso le query parametriche con prepare, bind ed execute
FONDAMENTALE queste accortezze: nella query inerire :id, :nome e così via ossia i : e poi il nome della variabile.
Inoltre si ha il controllo del tipo del campo che si andrà ad inserire che come si vede può essere di tipo intero o di tipo stringa con il comando PDO::PARAM_STR che sarà appunto di tipo stringa.
Pubblicato in Senza categoria
Lascia un commento
PHP – PDO – Creazione database e creazione tabelle
Si noti che mi sono collegato al dbms poi ho creato il database. Ho intercettato il messaggio d’errore nel caso in cui la creazione del database non fosse andata a buon fine con il metodo errorCode().
Adesso creo la tabella dopo essermi collegato al database utenti.
sto operando in maniera molto veloce la creazione di una tabella e si nota che non sto specificando che tipo di DBMS sto usando se non , ovviamente in fase si login, ma a differenza dell’altro approccio non uso più metodi o classi caratteristici del mysql.
Pubblicato in Senza categoria
Lascia un commento