Conception de Site Webs Interactifs Cours 9 Patrick Reuter preuter@labri.fr

Preview:

Citation preview

Conception de Site Webs Interactifs

Cours 9

Patrick Reuter

preuter@labri.fr

Mini-projets

1. Site de rencontre– (utilisateurs, rechercher un correspondant)

2. Messagerie privée– (éventuellement à combiner avec 1.)

3. Gestion d’une équipe de sport4. Forum de discussion5. Gestion de salles de cours6. Site de vente aux enchères7. Albums de photos8. Carnet d’adresses et liste de mailings9. Gestionnaire de DVD10. 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<br>";echo "Requête MySQL : ".$sql."\n<br>"; 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 enregistrementswhile ($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<br>";echo "Requête MySQL : ".$sql."\n<br>"; die;

} return $resultat;

}?>

PHP et MySQL

Terminologie

• Base de données (database)

• Table (table)

• Enregistrement (record)

• Champ (field)

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)

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)

Types de relations

• Relation de type 1:1

• Relation de type 1:n

• Relation de type n:m

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

Table sondages

id question

1 Aimez voue le foot ?

2 Constitution européenne ?

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

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

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 d’une 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: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.

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.

Recommended