Primi passi con un progetto complesso mysql/php: un db relazionale é come una scacchiera, parola di web design Umbria!

web design umbriaLa maggior parte dei libri e manuali tecnici che parlano di php e mysql dedicano i primi capitoli almeno un paio a un overview generale e tutto un capitolo prolisso sull’ installazione di mysql e poi sull’ installazione di php e poi sull’ installazione del server apache, osservazione critica di web design Umbria. Installate in locale xampp https://www.apachefriends.org/it/index.html e risolvete un sacco di problemi dipodiché vi concentrate senza perdere troppo tempo alla sostanza dei contenuti e non a quelli della cornice dal momento che in rete se qualcuno desiderasse installare i pacchetti isolati trova una grande quantità di guide e informazioni su come districarsi per ottimizzare le varie configurazione ambiente. Sostanzialmente in una architettura client e server si instaura un rapporto perverso simile a due tenisti dove il client invia una riochiesta interrogazione per mano dell’ utente e dall’ altra parte una macchina infallibile se le istruzioni sono corrette risponde in maniera ottimizzata per dare delle risposte dal server che invia i dati elaborati al client. Volendo potremmo anche vedere un esempio tipo questo da inserire nel body: <p>Today’s Date (according to this Web server) is <?php echo date(‘l, F dS Y.’); ?> che genera nel browser questa risposta: Today’s Date (according to this Web server) is Sunday, October 08th 2017. Questo é la dimostrazione di quanto detto precedentemente anche se qui l’utente non fa nessuna richiesta diretta ma é la pagina che aggiorna sempre dinamicamente il contenuto. Vediamo i parametri usati da indirizzo http://php.net/manual/en/function.date.php dove scopriamo che la l sta per (lowercase ‘L’) A full textual representation of the day of the week; la F sta per A full textual representation of a month, such as January or March e naturalmente Y per l’anno in 4 cifre. Ora che le pagine siano dinamiche siamo contenti ma le cose diventano davvero ionteressanti quando di mezzo abbiamo un database mysql per interrogare i dati, pensiamo solo a un contenitore dove mettere tutte le nostre barzellette preferite per estrapolare poi davvero quello che é di ns interesse di volta in volta. Immaginiamo cento pagine con cento barzellette diverse, una per ogni singola pagina HTML all’ interno del DB posso posizionare tutte le mie barzellette in unica soluzione tabella all’ interno di campi testo univoci contrassegnati da un id di appartenenza che le identifica. web design umbriaLe barzellette verrebbero selezionate in automatico, le pagine dinamiche costruite in base alle interrogazioni e gli inserimenti andrebbero ad accrescre il nostro numero di record con una query di INSERT. Un database é composto da uno o più tabelle e poniamo il caso che lo chiamiamo in questo caso jokes al plurale. Poi creeremo una tabella che avrà tre colonne contrassegnate da id , joketext e jokedate e con varie righe , una per ogni barzelletta inserita. Per ragioni di buona progettazione ogni tabella di database dovrebbe sempre dare la possibilità di identificare ognuna delle sue righe in modo univoco. I criteri per la costruzione dei database relazionali vedono proprio nel concetto di ridondanza il loro punto di lavoro critico nel senso che i record non devono essere ripetuti all’ interno della tabella e anche dati che compaiono più volte occupano inutilmente spazio in memoria. La progettazione del DB é fase molto delicata e ricca di implicazioni. Se il server host non mette a disposizione una finestra di accesso é possibile anche da finestra di comando windows cmd collegarsi all’ indirizzo IP della macchina con la login tramite il comando da root mysql, quindi mysql -h hostname -u username -p, tutto questo per dire che imparare i comandi mysql da riga di comando é cosa molto importante e non solo armeggiare sulla parte grafica di phpadmin presente in localhost. ad esempio mysql>SHOW DATABASES; mostrerà una risposta tipo due row in set seguito dal tempo di esecuzione con la rappresentazione grafica elemntare dei database mysql e test che sono quelli di default messi a disposizione dal software. Se scrivessi mysql>DROP DATABASE test; cancellerei il database test questo per dire che bisogna fare molta attenzione a quello che viene digitato. Il punto e virgola é la fine del comando e quindi se si omette posso anche spezzare i comandi su più righe per una migliore lettura di quello che voglio ottenere. Per uscire dal software basta un mysql>QUIT e Bye di conseguenza. Il metodo di inserimento dei comandi che useremo per governare MySQL per tutto il resto della trattazione fa parte di uno standard generale detto Structured query language o SQL e possiamo riferirci a questo linguaggio anche dicendo semplicemente query visto che to query sta a significare interrogare, cercare. SQL é un linguaggio standard per interagire con i DB e non ci sono grandi differenze saltando altrove semmai cambiano solo i dialetti. Basta solo non fare condusione tra MySQL e SQL, il primo é il software che ci viene messo a disposizione per immagazzinare i dati mentre il secondo é il linguaggio di interrogazione per ottenere i risultati di manipolazione modellazione estrapolazione che ci interessano. web design umbriaPer creare un database da riga di comando mysql>CREATE DATABASE ijdb; Per iJdb (internet joke database) dopodiché per usarlo e selezionarlo scriverò mysql>USE iJdb; Un database é vuoto finché non vengono aggiunte delle tabelle, quindi dovremmo preoccuparci come prima cosa di costruire un contenitore adeguato per i nostri dati. Dal punto di vista didattico per inserire i dati in un DB possiamo usare un doppio metodo tipo mysql> INSERT INTO table_name SET colonna1=value1, colonna2=value2…; oppure mysql> INSERT INTO table_name (colonna1, colonna2) VALUES (value1, value2)..;nel secondo caso nella seconda forma del comando INSERT l’ordine con cui ordinate le colonne deve coincidere con l’ordine con cui ordinate i valori. Per visualizzare i dati, aggiunge web design Umbria, si usa il comando mysql>SELECT * FROM joke; che tradotto significa seleziona tutti gli oggetti dalla tabella joke. Se i risultati appaiono disorganizzati posso estrapolare solo quello che mi interessa con la formula mysql>SELECT id, jokedate FROM joke; potrei anche desiderare di vedere almeno una parte della barzelletta e lo posso fare con questo comando specificando i caratteri: mysql>SELECT ID, LEFT (joketext,20), jokedate FROM joke; con COUNT posso visualizzare il numero di risultati avuti come numero di righe mysql>SELECT COUNT(*) FROM joke; possiamo anche cercare determinati attributi tipo tirami fuori tutti i record che sono stati inseriti dopo una specifica data mysql>SELECT COUNT(*) FROM joke WHERE jokedate>= “2004-0101”; possiamo anche estrapolare quelle barzellette che al loro interno hanno una specifica porzione di testo con mysql>SELECT joketext FROM joke WHERE joketext LIKE “%chicken%”; con LIKE parola chiave dico a mysql che la colonna nominata deve soddisfare una specifica qualità. Il segno % indica che la parola cercata può essere preceduta e/o seguita da una qualsiasi stringa di testo.Posso combinare quanto visto precedentemente con l’operatore logico AND per cui posso combinare il where con e il like con l’uguale e maggiore come data appunto unendo le espressioni con AND. Per aggiornare i dati la nomenclatura é mysql>UPDATE table_name SET colonnaname = new value, …WHERE conditions ad esempio possiamo cambiare una specifica data con il comando mysql>UPDATE joke SET jokedate=”1994-03-01″ WHERE id=1; per cancellare mysql>DELETE FROM table_name WHERE conditions; Per cancellare tutte le barzellette con la parola chiave pollo: mysql> DELETE FROM joke WHERE joketext LIKE “%chicken%”; inutile ricordare che bisogna fare molta attenzione nell’ usare la parola chiave DELETE ad esempio un comando da riga come questo mysql>DELETE FROM joke; svuoterebbe la tabella in un battito di ciglia! Per capire la forza di un database relazionale dovremmeo lavorare sulla dipendenza e sui legami tra molte tabelle dove esistono complesse relazioni tra le entità coinvolte. In una delle prossime sessioni di allenamento con umbriaway consulting andremo a vedere l’interazione specifica con i file php per modellare questi dati segregati nel contenitore. In rete ci sono molte guidi di riferimento per avere una sintesi dei principali comandi mysql per esempio: https://mauriziosiagri.wordpress.com/it/mysql/mysql-comandi-utili

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Crea un sito o un blog gratuitamente presso WordPress.com.

Su ↑

%d blogger hanno fatto clic su Mi Piace per questo: