conception de site webs interactifs cours 10 patrick reuter [email protected]
TRANSCRIPT
![Page 2: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/2.jpg)
Mini-projets
![Page 3: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/3.jpg)
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)
![Page 4: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/4.jpg)
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• -----------------
![Page 5: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/5.jpg)
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<br>";echo "Requête MySQL : ".$sql."\n<br>"; die;
} return $resultat;
}?>
![Page 6: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/6.jpg)
PHP et MySQL
![Page 7: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/7.jpg)
$sql = "INSERT INTO livreor ( id , texte , nom , date ) VALUES ('', '".mysql_escape_string($_GET['nom'])."', '".$_GET['texte']."', NOW()); ";
$resultat = qdb($sql);
$resultat = mysql_query("INSERT INTO …");
![Page 8: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/8.jpg)
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<br>";echo "Requête MySQL : ".$sql."\n<br>"; die;
} return $resultat;
}?>
![Page 9: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/9.jpg)
![Page 10: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/10.jpg)
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 enregistrementswhile ($enregistrements = mysql_fetch_array($resultat)){ echo $enregistrements['id']; echo $enregistrements['question'];}
?>
![Page 11: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/11.jpg)
Parcourir les enregistrenents<?php
$sql = "SELECT * FROM personnes WHERE id =".$_GET['id'];$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['nom']; $i = $i + 1;}?>
![Page 12: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/12.jpg)
![Page 13: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/13.jpg)
![Page 14: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/14.jpg)
Terminologie
• Base de données (database)
• Table (table)
• Enregistrement (record)
• Champ (field)
![Page 15: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/15.jpg)
Table PERSONNE
PERSONNE
PersID nom prénom date_naiss ville_naiss
1 Dupont bob 01-01-1950 1
2 yyyy meurise 29-04-1999 2
3 zzzz codd 26-12-2000 1note : ici ville_naiss est une clé étrangère (Table VILLE)
![Page 16: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/16.jpg)
Table VILLE
VILLE
VilleID nom population superficie region
1 Paris 123456 123456 12
2 Lyon 12345 12345 22
3 Grenoble 1234 1234 22note : ici region est une clé étrangère (table REGION)
![Page 17: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/17.jpg)
Table personnes
id nom
1 Pascal
2 Marie
![Page 18: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/18.jpg)
Table animauxid nom … id_personne
1 Zeus … 1
2 Sisko … 1
3 Peggy … 1
4 Oscar … 2
5 Felix … 2
![Page 19: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/19.jpg)
Types de relations
• Relation de type 1:1
• Relation de type 1:n
• Relation de type n:m
![Page 20: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/20.jpg)
Sondage
id Question Textechoix1 Reponsechoix1 Textechoix2 Reponsechoix2 …
1 Constitution européenne ?
Pour 0 Contre 0
2 Aimez vous le foot ?
J'aime bien J'aime moyen
![Page 21: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/21.jpg)
Table sondages
id question
1 Aimez voue le foot ?
2 Constitution européenne ?
![Page 22: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/22.jpg)
Table réponsesid reponse votes id_sondage
1 J'aime bien 0 1
2 J'aime moyen
0 1
3 J'aime pas 0 1
4 Pour 0 2
5 Contre 0 2
![Page 23: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/23.jpg)
Table réponsesid reponse votes id_sondage
1 J'aime bien 0 1
2 J'aime moyen
0 1
3 J'aime pas 0 1
4 Pour 0 2
5 Contre 0 2
clé étrangère
![Page 24: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/24.jpg)
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
![Page 25: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/25.jpg)
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]];
![Page 26: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/26.jpg)
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
![Page 27: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/27.jpg)
Instructions MySQL
Effacer un enregistrement
DELETE FROM nom_table WHERE nom_du_champs = valeur
![Page 28: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/28.jpg)
• Relation 1 : n
![Page 29: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/29.jpg)
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
![Page 30: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/30.jpg)
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
![Page 31: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/31.jpg)
Relation n:mDans 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.
![Page 32: Conception de Site Webs Interactifs Cours 10 Patrick Reuter preuter@labri.fr](https://reader036.vdocuments.site/reader036/viewer/2022070309/551d9d81497959293b8bab47/html5/thumbnails/32.jpg)
RéalisationRelation 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.