Conception de Sites Web dynamiques Cours 8 2009/2010 Patrick Reuter Inscription Authentification Programme Hébergement Sujets Projets Retour sur TP MySQL Base de données Hébergement de vos sites Capacités : PHP, une base de données MySQL Chercher le meilleur hébergeur gratuit Avec publicité (ifrance, lycos multimania) Sans publicité (Olympe network, ) 1
Présentation d'un sujet du web Quels navigateurs utiliser? Extensions firefox Les logiciels Google Protection de données dans le web Les aspects juridiques pour créer un site Internet Les réseaux sociaux Internet sur mobile Flux RSS Outils OpenSource pour la conception de sites webs Internet mobile Les différentes formes d'expression sur le web (Weblog, forums, réseaux sociaux) Deezer.com et les sites communautaires de musique en streaming Projets 1. Site de rencontre (utilisateurs, rechercher un correspondant) 2. Messagerie privée (éventuellement à combiner avec 1.) 3. Gestion d une équipe de sport 4. Forum de discussion 5. Gestion de salles de cours 6. Site de vente aux enchères 7. Albums de photos 8. Carnet d adresses et liste de mailings 9. Gestionnaire de DVD 10. Jeux de bourse 11. Covoiturage Projets Jeu à jardin de plantes Actualisation web Mailing list Reminder web de evenement Creation statistiques Gestionnaire division sportive Planning Légende <h1>titre de la page</h1> h1, h2, h3 color: red; $a = 3; CREATE DATABASE `base_cswd` ; XHTML CSS PHP MySQL Conception de Site Webs Interactifs Déroulement Pages web statiques (HTML/XHTML) Mise en forme avec feuilles de styles (CSS) Programmationcôté serveur Pages web dynamiques (PHP) avec connexion à une base de données (MySQL) Programmation côté client JavaScript Référencement Internet (moteur de recherche) PHP et MySQL 2
Fichier connect_db.php ("PHP se connecte à MySQL") $dbhost="localhost"; $dbuser="root"; $dbpassword=""; $dbname="base_cswd"; $dblink=mysql_connect($dbhost,$dbuser,$dbpassword); $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; Terminologie Table Base de données (database) Table (table) Enregistrement (record) Champ (field) Instructions MySQL de base INSERT Insérer un enregistrement SELECT Sélectionner des enregistrements UPDATE Mettre à jour des champs des enregristrements DELETE Effaces des enregistrements Instructions MySQL INSERT INTO users ( id, pseudo, motdepasse) VALUES ('1', 'nathan', '0000 ); si le champs id est mis en auto increment, il suffit de mettre INSERT INTO `users` (`pseudo`, `motdepasse`) VALUES ('nathan', '0000 ); et la valeur de id est mise à jour automatiquement 3
INSERT Connexion PHP vers MySQL INSERT INTO livreor ( id, nom, texte, date ) VALUES ('', 'Maggie', 'Bon site!', '2007-10-17 17:55:00'); // 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'); "; Attention au ' : les «échapper» avec la fonction $a = mysql_escape_string($a); string($a); avant : après : $a contient "l'arbre"; $a contient "l\'arbre"; Instructions MySQL Sélectionner les champs de tous les enregistrements d une table SELECT * FROM `users` ` [WHERE condition [AND condition] [OR condition]] [ORDER BY champs [DESC][ASC]]; SELECT SELECT * FROM livreor; 4
SELECT INSERT UPDATE CREATE $i=1; while ($i <= $nombre_resultats) $enregistrements = mysql_fetch_array($resultat); $i = $i + 1; $nombre_resultats = mysql_num_rows($resultat); if ($enregistrements['id'] == 1) SELECT SELECT * FROM livreor WHERE id=1; $sql = "SELECT * FROM livreor WHERE id=1; "; 5