Il blog engine d'esempio prevede la creazione di tre tabelle destinate alla memorizzazione dei dati relativi al login per l'amministrazione, ai post e ai commenti degli utenti a corredo degli articoli.
La creazione delle tabelle è possibile passando alla funzione mysql_query()
l'istruzione SQL "CREATE TABLE"
a cui far seguire il nome della tabella da creare e quelli dei diversi campi che andranno a comporla completi di caratteristiche (tipo di dato associato, dimensione massima consentita se prevista per il tipo di dato scelto, possibilità o meno di ospitare valori nulli e così via).
Avendo già a disposizione la funzione personalizzata query()
, non sarà necessario crearne una ex novo per la gestione di questa fase, basterà invece passare ad essa le istruzioni necessarie per la creazione delle tre tabelle desiderate:
// inclusione del file contenente la classe include "funzioni_mysql.php" // istanza della classe $data = new MysqlClass(); // connessione a MySQL $data->connetti(); // creazione della tabella per il login $data->query("CREATE TABLE `login` ( `id_login` INT( 1 ) NOT NULL AUTO_INCREMENT , `username_login` VARCHAR( 10 ) NOT NULL , `password_login` VARCHAR( 40 ) NOT NULL , PRIMARY KEY ( `id_login` ))"); // creazione della tabella per i post $data->query("CREATE TABLE `post` ( `id_post` INT( 5 ) NOT NULL AUTO_INCREMENT , `titolo_post` VARCHAR( 255 ) NOT NULL , `testo_post` TEXT NOT NULL , `autore_post` VARCHAR( 30 ) NOT NULL , `data_post` DATE NOT NULL , PRIMARY KEY ( `id_post` ) )"); // creazione della tabella per i commenti $data->query("CREATE TABLE `commenti` ( `id_commento` INT( 6 ) NOT NULL AUTO_INCREMENT , `id_post` INT( 5 ) NOT NULL , `autore_commento` VARCHAR( 30 ) NOT NULL , `testo_commento` TEXT NOT NULL , `data_commento` DATE NOT NULL , `approvato` ENUM( '0', '1' ) NOT NULL , PRIMARY KEY ( `id_commento` ) )"); // disconnessione $data->disconnetti();
Il codice è anche disponibile in formato Sql facendo clic sul link Visualizza il codice sorgente qui in basso.
-- Struttura della tabella `commenti` CREATE TABLE `commenti` ( `id_commento` int(6) NOT NULL auto_increment, `id_post` varchar(5) NOT NULL default '', `autore_commento` varchar(30) NOT NULL default '', `testo_commento` text NOT NULL, `data_commento` date NOT NULL default '0000-00-00', `approvato` enum('0','1') NOT NULL default '0', PRIMARY KEY (`id_commento`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- Struttura della tabella `login` CREATE TABLE `login` ( `id_login` int(1) NOT NULL auto_increment, `username_login` varchar(10) NOT NULL default '', `password_login` varchar(40) NOT NULL default '', PRIMARY KEY (`id_login`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ; -- Struttura della tabella `post` CREATE TABLE `post` ( `id_post` int(5) NOT NULL auto_increment, `titolo_post` varchar(255) NOT NULL default '', `testo_post` text NOT NULL, `autore_post` varchar(30) NOT NULL default '', `data_post` date NOT NULL default '0000-00-00', PRIMARY KEY (`id_post`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Nelle tabelle create sono stati inseriti numerosi campi che permettono di porre in relazione i dati all'interno delle tabelle stesse e tra i campi delle varie tabelle; un'idea più chiara delle relazioni create si otterrà con un'analisi attenta della struttura delle tabelle che vedremo nella prossima lezione.