Conception de Site Webs Interactifs Cours 9 Patrick Reuter
Mini-projets 1.Site de rencontre –(utilisateurs, rechercher un correspondant) 2.Messagerie privée –(éventuellement à combiner avec 1.) 3.Gestion dune é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 dadresses et liste de mailings 9.Gestionnaire de DVD 10.Jeux de bourse
Jeu à jardin de plantes Actualisation web Mailing list Reminder web de evenement Creation statistiques Gestionnaire division sportive Planning
PHP et MySQL
$sql = "INSERT INTO livreor ( id, texte, nom, date ) VALUES ('', '".$_GET['nom']."', '".$_GET['texte']."', NOW()); "; $resultat = qdb($sql);
Fichier connect_db.php <?php $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 "; echo "Requête MySQL : ".$sql."\n "; die; } return $resultat; } ?>
Parcourir les enregistrenents <?php $sql = "SELECT * FROM sondages;"; $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['id']; echo $enregistrements['question']; } ?>
Parcourir les enregistrenents <?php $sql = "SELECT * FROM sondages;"; $resultat = qdb($sql); // connaitre le nombre d'enregistrements $nombre_resultats = mysql_num_rows($resultat); // parcourir le tableau des enregistrements $i=1; while ($i <= $nombre_resultats) { $enregistrements = mysql_fetch_array($resultat) echo $enregistrements['id']; echo $enregistrements['question']; $i = $i + 1; } ?>
Transférer votre site vers votre hebergeur Transférerer les fichiers (index.php, …) Transférer la base de données Fichier de configuration –connect_db.php (version en local) –connect_db.php (version sur le serveur)
Transférer des fichiers vers votre hebergeur FTP (File transfer protocol) Client FTP : Filezilla, FTP Expert, SmartFTP, … Addresse FTP ftp.ifrance.com ftp.numericable.fr ftp.membres.lycos.fr ftp.wanadoo.fr Nom d'utilisateur preuter Mot de passe
Fichier connect_db.php <?php $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 "; echo "Requête MySQL : ".$sql."\n "; die; } return $resultat; } ?>
PHP et MySQL
Terminologie Base de données (database) Table (table) Enregistrement (record) Champ (field)
Table PERSONNE PERSONNE PersIDnomprénomdate_naissville_naiss 1Dupontbob yyyymeurise zzzzcodd note : ici ville_naiss est une clé étrangère (Table VILLE)
Table VILLE VILLE VilleIDnompopulationsuperficieregion 1Paris Lyon Grenoble note : ici region est une clé étrangère (table REGION)
Types de relations Relation de type 1:1 Relation de type 1:n Relation de type n:m
Sondage idQuestionTextechoix1Reponsechoix1Textechoix2Reponsechoix2… 1Constitut ion europée nne ? Pour0Contre0 2Aimez vous le foot ? J'aime bienJ'aime moyen
Table sondages idquestion 1Aimez voue le foot ? 2Constitution européenne ?
Table réponses idreponsevotesid_sondage 1J'aime bien01 2J'aime moyen 01 3J'aime pas01 4Pour02 5Contre02
Table réponses idreponsevotesid_sondage 1J'aime bien01 2J'aime moyen 01 3J'aime pas01 4Pour02 5Contre02 clé étrangère
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
Instructions MySQL Sélectionner les champs de tous les enregistrements dune table SELECT * FROM `users` [WHERE condition [AND condition] [OR condition]] [ORDER BY champs [DESC][ASC]];
Instructions MySQL Modifier une donnée dans une table UPDATE nom_table SET nom_du_champs = nouvelle_valeur WHERE nom_du_champs = valeur Exemple UPDATE sondage SET nombrechoix1 = 0 WHERE id = 1
Instructions MySQL Effacer un enregistrement DELETE FROM nom_table WHERE nom_du_champs = valeur
Relation 1 : n
Relation de type 1:1 Une entité est partenaire de exactement une autre entité Exemples: Mariage : Une personne est marié avec exactement une autre personne Personne 1:1 Personne Immatriculation : Une véhicule à exactement une immatriculation Véhicule 1:1 Immatriculation Stade : Dans notre exemple, un club a exactement un stade Club 1:1 Stade
Relation de type 1:n Une entité d'un côté est en relation avec un ou plusieurs entités de l'autre côté. Exemples : Art : Un tableau se trouve (à un moment donné) dans un musée. Par contre, dans un musée il y a plusieurs tableaux. Musée 1:n Tableaux Famille: Un enfant à exactement une mère biologique. Mais une mère peut avoir plusieurs enfants. Mère 1:n Enfants
Relation n:m Dans les deux côtés de la relation il y a un nombre arbitraire d'entités. Attention : Ne pas écrire n:n ! (n m) Exemples : Etudiant Professeur: Un professeur enseigne plusieurs étudiants. Un étudiant va en cours de plusieurs professeurs. Professeur m:n Etudiant Immobilier : Un immobilier peut appartenir à plusieurs propriétaires. Un propriétaire peut posséder plusieurs immobiliers. Propriétaire n:m Immobilier joueurs clubs anciens : Un joueur peut avoir plusieurs clubs anciens. Un club a plusieurs joueurs.
Réalisation Relation 1:1 La clé primaire d'une entité est la clé étrangère d'une autre entité dans un champs supplémentaire. Relation 1:n La table de l'entité du côté n aura un champs supplémentaire qui a comme clé étrangère la clé primaire du côté 1. Relation n:m Création d'une table de jointure qui contient deux clés étrangères qui sont les clés primaires des deux tableaux. Les relations n:m seront toujours converties en deux relations, une relation 1:n, et une relation 1:m.