22/10/2008 Sur le web • http://www.labri.fr/~preuter/cswd2008/mysql3.ppt Créer une base de données MySQL y Q Et création de tables, enregistrements, Interface d'administration avec PHP Légende <h1>Titre de la page</h1> XHTML h1, h2, h3 { color: red; } CSS <?php $a = 3; ?> PHP CREATE DATABASE `base_cswd` ; MySQL MySQL – Créer une base de données CREATE DATABASE base_cswd base cswd ; 1 22/10/2008 Créer une table MySQL – Créer une table CREATE TABLE `livreor` (`id` INT NOT NULL AUTO_INCREMENT , `texte` texte TEXT NOT NULL , `nom` TEXT NOT NULL , `date` DATETIME NOT NULL , PRIMARY KEY ( `id` ) ); MySQL – Insérer un enregistrement • Attention au ` Æ le mieux c'est de les enlever 2 22/10/2008 MySQL – Insérer un enregistrement • Attention au ` Æ le mieux c'est de les enlever INSERT INTO livreor ( id , nom , texte, , date ) VALUES ('', 'Maggie', 'Bon site!', '2007-10-17 17:55:00'); Fichier connect_db.php <?php <?php $dbhost="localhost"; $dbuser="root"; $dbpassword=""; $dbname="base_cswd"; // inclure la connexion à la base de données require_once "connect_db.php"; $dblink=mysql_connect($dbhost,$dbuser,$dbpassword); // exécuter une requête MySQL $db_cswd=mysql_select_db($dbname,$dblink); function qdb($sql) { $resultat = mysql_query($sql); if (mysql_errno()) { echo "MySQL error ".mysql_errno()." : ".mysql_error()."\n<br>"; echo "Requête MySQL : ".$sql."\n<br>"; die; } return $resultat; } $sql = " INSERT INTO livreor ( id , nom, texte , date ) VALUES ('', 'Maggie', 'Bon site !', '2007-10-17 17:55:00'); "; $resultat = qdb($sql); ?> ?> 3 22/10/2008 Terminologie • • • • Base de données (database) Table (table) Enregistrement (record) Champ (field) • Insérer un enregistrement dans la base de données avec PHP <?php • Attention au ' fonction // inclure la connexion à la base de données require_once "connect_db.php"; // exécuter une requête MySQL $sql = " INSERT INTO livreor ( id , nom , texte , date) VALUES ('', '".$_GET['nom']."', 'Bon site !', '2007-10-17 17:55:00'); "; : les «échapper» avec la <?php $a = mysql_escape_string($a); mysql escape string($a); ?> $resultat = qdb($sql); avant : après : ?> Sélectionner les champs de tous les enregistrements d’une table $a contient "l'arbre"; $a contient "l\'arbre"; Interaction de PHP avec MySQL <?php // inclure la connexion à la base de données require_once "connect_db.php"; // exécuter une requete MySQL SELECT * FROM livreor ; $sql = " SELECT SELECT * FROM livreor"; * FROM livreor; $resultat = qdb($sql); // connaitre le nombre d'enregistrements $nombre_resultats = mysql_num_rows($resultat); // parcourir le tableau des enregistrements while ($enregistrements = mysql_fetch_array($resultat)) { echo $enregistrements['nom']; echo $enregistrements['texte']; }; ?> Nombre de résultats : <?php echo $nombre_resultats; ?> 4 22/10/2008 Sélectionner les champs des enregistrements précis d’une table Interaction de PHP avec MySQL <?php // inclure la connexion à la base de données require_once "connect_db.php"; // exécuter une requete MySQL SELECT * FROM livreor WHERE nom = 'Helena' $sql = " SELECT * FROM livreor WHERE nom = 'Helena'; "; $resultat = qdb($sql); // connaitre le nombre d'enregistrements $nombre_resultats = mysql_num_rows($resultat); // parcourir le tableau des enregistrements while ($enregistrements = mysql_fetch_array($resultat)) { echo $enregistrements['nom']; echo $enregistrements['texte']; }; ?> Nombre de résultats résultats Nombre de : : <?php echo $nombre_resultats; ?> 5