• Aucun résultat trouvé

Comment continuer Document 9 (.pdf)

N/A
N/A
Protected

Academic year: 2022

Partager "Comment continuer Document 9 (.pdf)"

Copied!
5
0
0

Texte intégral

(1)

Document TD et TP SGBD numéro 9

Ce document comme les autres est à lire impérativement. Je ne tolèrerai pas des étudiants qui regardent impassibles leur écran, et posent une question pour laquelle il ont la réponse devant les yeux.

Est considéré acquis

 Nous avons un modèle acceptable (Document 6)

 Nous savons nous connecter au serveur et la base (Scripts du document 3, commenté au document 8)

 Cependant nous ne faisons à ce stade qu’interroger la base avec SELECT

 Il nous faut pouvoir insérer des fiches, les supprimer ou les modifier (mise à jour)

I) L’insertion de nouvelles fiches

 Un script articulé autour d’un formulaire de saisie et d’un ordre d’insertion dans une table;

en php, suffissent dans le cadre de notre travail :

 Le formulaire est classique, comme ci-dessous :

Le code html est comme ceux ci-dessous : Pour le formulaire :

 SaisieFichePoursuite.htm (voir plus loin)

Pour le script php d’insertion, modification et suppression :

 MiseAJourPoursuite.php (voir plus loin)

Ce script passe partout permet la création de fiche, la modification, la suppression.

Il faut en conclure que les tables ne se remplissent pas de données sans une action programmée.

Aussi,

toutes les tables de notre application ont un formulaire de saisie, et un script d’insertion de modification ou de suppression de fiche

.

(2)

II) Quelques scripts en vrac.

A) Insertion / Modification / Suppression de fiches 1) Formulaire de saisie des données :

<html>

<head>

<meta name="TITLE" content="Poursuite d" études="" src="">

<title>Insertion de fiche SGBD "Poursuite d'&eacute;tude"</title>

</head>

<body>

<br><br>

<form action="MiseAJourPoursuite.php" method="post"><big>Formulaire de Saisie "Poursuite"</big><br><br>

ID: Le champ est typ&eacute; "num&eacute;rotation automatique"<br><input type="text" size="7" name="ID"><br>

Dipl&ocirc;me propos&eacute;: Dut, Licence, Maîtrise, Cv Etudiant, DU, DESS, Master, Autre, ... mais aussi annuaire.<br>

<select name="Diplome">

<option selected="selected">Annuaire</option>

<option>Iut</option>

<option>Iup</option>

<option>Licence</option>

<option>Licence Pro</option>

<option>Maitrise</option>

<option>Cv Etudiant</option>

<option>DU</option>

<option>DESS</option>

<option>Master</option>

<option>Autre</option>

</select>

<br>

Titre du site:<br> <input name="Titre" size="80"><br>

Adresse du site: Url du site de la formation<br><input name="Adresse" size="80"><br>

Domaine:&nbsp; Info Com, R&eacute;seau, Programmation, etc...<br><input name="Domaine" size="80"><br>

Descriptif : retourn&eacute; par le m&eacute;ta moteur.<br><textarea name="Descriptif" cols="70"

rows="3"></textarea><br>

Commentaire:<font face="Arial,Helvetica"> Appr&eacute;ciation, saisie manuellement.<br>

<textarea name="Commentaire" cols="70" rows="2"></textarea><br>

D&eacute;partement: Src, Gea, Geii, Gmp, Tc<br>

<select name="Departement">

<option selected="selected">SRC</option>

<option>GEA</option>

<option>GMP</option>

<option>GEII</option>

<option>TC</option>

</select>

<br>Ville:<br>

<input name="Ville" type="text" size="40"><br>

<br><br>

<input type="submit" name="inserer" value="Ins&eacute;rer une Fiche">

<input type="submit" name="supprimer" value="Supprimer Fiche">

</form>

</body>

</html>

2) Script de Mise à jour de la table poursuite : MiseAJourPoursuite.php

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">

<html>

<head>

<title>Mise à Jour Base PoursuiteEtude Table poursuite Php</title>

<link rel="stylesheet" href="style.css" type="text/css">

(3)

</head><body>

<center><H1> Résultat de la mise à jour</H1></center>

<?php

/* Vérifications des droits aux tables "sensibles" */

$Utilisateur = $HTTP_COOKIE_VARS['SerecomPoursuite'];

require ("connexion.php");

$table = "utilisateurs";

$resultat = mysql_query ("select * from $table where CONCAT($table.Login, $table.password) = '$Utilisateur'",

$connexion);

if ($Utilisateur)

{$table = "poursuite"; /* Nom de la table interpellée */

/* Test de type de mise à jour*/

echo "<HR><H2>\n";

if (isset($inserer)) echo "Insertion d'une fiche dans $table : $ID";

elseif (isset($supprimer)) echo "Suppression d'une fiche dans $table : $ID";

echo "</H2><HR>\n";

/*

Affichage des données du formulaire

*/

echo "Fiche: $ID <BR><BR>\n";

/*

Création de l'ordre SQL

*/

if (isset($inserer))

$requete = "INSERT INTO $table (ID, Titre, Adresse, Descriptif, Diplome, Domaine, Commentaire, Departement, Ville) VALUES ('$ID', '$Titre', '$Adresse', '$Descriptif', '$Diplome', '$Domaine', '$Commentaire', '$Departement', UCASE('$Ville'))";

/* if (isset($modifier))

$requete = "UPDATE $table SET ID='$ID', Titre=UCASE('$Titre'), Adresse='$Adresse',

Descriptif='$Descriptif', Diplome='$Diplome', Domaine ='$Domaine', Commentaire='$Commentaire', Departement=UCASE('$Departement'), Ville=UCASE('$Ville')" . "WHERE ID='$ID'"; */

if (isset($supprimer))

$requete = "DELETE FROM $table WHERE ID='$ID'";

/*

Exécution de l'odre SQL

*/

$resultat = mysql_query ($requete, $connexion);

echo "<HR>La requête $requete a bien été réalisée.<BR>\n";

echo "<a href=ConnectPoursuite.php>Retour</a></b>\n";

} else

{

include "AccesAvecDroitsRefus.php";

}

echo "<BR><center><A HREF=Admin.htm>:[Retour vers Admin]:</a></center>\n";

?>

</body>

</html>

(4)

III) Résultat

A) Le formulaire où sont saisies les données :

B) Le résultat de l’instruction passée par le script : C’est le if(isset(inserer)) du script qui a été activé. Lisez le code… assez simple.

Notez qu’un cookie sert à vérifier les droits de l’utilisateur qui réalise l’insertion de fiche dans la base. Notez aussi que cet utilisateur connecté apparaît clairement, ici ferrexxxx.

C’est la même solution qui sera utilisée pour la connexion des étudiants, qui peuvent

mémoriser leurs fiches. Le lien Mémoriser la fiche a cette fonction

(5)

III) Comment organiser votre travail :

Il doit être bien compris que je ne n’explique pas n fois des modèles, des instructions, etc.

pour lesquelles les schémas ont étés amplement développés en TD. Et qui plus est ont fait l’objet de petits guides de 1 à 9 à ce soir, de quelques pages, que trop d’entre vous ne lise pas.

Il est limite intolérable que certains restent devant leur écran dans l’attente d’une explication individualisée qui se trouve ne ligne dans les petits guides (scripts compris). Je serai très ferme sur ce point.

A) Reprenez le modèle (type Merise, et ses évolutions à ma page ressources) Cette dernière à l’adresse http://serecom.iut-tarbes.fr/ficheferrepatrick.htm Au cas d’aléas du serveur à l’adresse http://patrick.ferre.free.fr/

B) Etudiez le script de création de table en SQL (il contient des « pièges »)

Pour ceux qui ont fait du copier coller, qui était autorisé, il faut quelques correctifs de bon sens.

Certains champs ne sont peut-être pas typés convenablement (taille d’un int(), taille d’un varchar()

… Ce pour que vous compreniez que le script un peu long, était donné parce que ne présentant pas de grand intérêt… sauf à l’étudier pour qu’il corresponde aux besoins.

C) Testez vos scripts en vous inspirant des scripts que je vous « donne » sans perdre de temps au décorum…

Vous avez, en général, la manie de décorer avant d’activer une fonction qui tourne. A ce choix, vous serez perdant. Vous ne pourrez pas terminer votre application. Que n’ai-je vu de très

« belles » interfaces, l’an passé entre autre en flash et des scripts qui ne remplissent pas leurs fonctions. Or, je ne suis pas là pour évaluer vos connaissances en flash.

D) Développez votre application dans l’ordre suivant :

1) Les scripts de consultation en premier (voir l’exemple du document 3)

2) Les scripts de création de fiches ensuite (donc création, modification, suppression). Dans un premier temps sans vous soucier de la sécurité. Il sera temps d’ajouter un module quand vos scripts tourneront

3) Les scripts d’administration de la base… que nous verrons plus tard.

Résumé : Vous devez réaliser :

- Les formulaires (html, ou php) permettant de saisir les données pour chaque table. Dans l’ordre, poursuite, etudiants, utilisateurs, et les suivants.

- Réaliser les scripts de consultation, puis de création de fiche, et de suppression de fiche pour chaque table.

- Réaliser les scripts d’accès gradués en privilèges, pour les étudiants, les utilisateurs (privilégiés) soit les professeurs et l’administration.

- Vous constaterez que ce sont les premiers scripts qui coûtent du travail, les autres en sont des

« copies » conformes. Il n’y a guère de différence entre un script de création de fiche d’un étudiant, et celle d’un professeur, sauf le nom de la table, vous l’aurez compris ?

Références

Documents relatifs

Il faut : Le soluté poudre, une pissette d'eau distillée, une fiole jaugée, une coupelle, un entonnoir, une balance, une spatule,

Un schéma est une représentation simplifiée d’un phénomène sous la forme d’un dessin ou les relations entre les différents éléments sont indiquées par des flèches.. Le

Compétences : Comprendre un message et agir de façon pertinente ; progresser vers la maîtrise de la langue française : lexique du corps, production de phrase (langage en

Pour conclure et rendre la fiche plus vivante, insérer sur le recto de la fiche la reproduction d’un portrait du personnage, une ou quelques œuvres (s’il s’agit d’un artiste),

Une fois la tyrolienne tendue (cf. diapo 2) la corde semi- statique de la tyrolienne est amarrée à un 2ème point à l'aide du noeud de cabestan sur un

Pour exécuter un script, il faut que le fichier soit exécutable : chmod u+x nomscript.. Pour lancer un script,

Si vous voulez porter cette variable en ordonnée sur un graphique, cocher le numéro de la fenêtre contenant ce graphique.. Si vous voulez porter cette variable en abscisse, ne

6 Si vous utilisez un capteur reconnu par Synchronie ou étalonné, choisir dans la rubrique Capteur celui qui vous convient puis passer au point 9 (changer le style en prenant des croix