SUITE COURS 06 : PHP – HTML – MYSQL Pour obtenir la vue

Transcription

SUITE COURS 06 : PHP – HTML – MYSQL Pour obtenir la vue
SUITE COURS 06 : PHP – HTML – MYSQL
Pour obtenir la vue suivante :
Vous devez modifier votre script de la manière suivante :
if(isset($_GET['delete'])){
$id = $_GET['delete'];
deleteSalaries($id);
}
<?php foreach ($listeSalaries as $cle=>$valeur): ?>
<tr>
<?php foreach ($valeur as $val): ?>
<td><?= $val ?></td>
<?php endforeach; ?>
<td><a href=listeSalaries?delete=<?= $valeur['idsalaries'] ?>
onClick="return(confirm('Etes-vous sûr de vouloir supprimer
<?= $valeur['nom'] ?> ?'));">delete</a>
</td>
<td><a href=form.php?id=<?= $valeur['idsalaries'] ?> >
update</a>
</td>
</tr>
<?php endforeach; ?>
Le lien <a href=listeUtilisateur.php?delete=$id, pointe sur la même page.
L'instruction PHP if(isset($_GET['delete'])) permet de vérifier que le paramètre delete figure dans
l'URL, si ce paramètre figure, on récupère l'identifiant du salarié, et on transmet la valeur du paramètre à
la fonction deleteSalaries($id). Ensuite on affiche tous les utilisateurs.
Avant de supprimer définitivement un enregistrement dans une base, il est possible de faire apparaître une
fenêtre de confirmation en javascript :
onClick="return confirm(' vous etes sur de vouloir supprimer <?= $valeur['nom'] ?> ')"
function deleteSalaries($id){
$req3 = "delete from salaries where idsalaries = $id ;";
mysql_query($req3) or die (mysql_error());
}
La mise à jour est plus délicate, le lien pointe sur un formulaire de mise à jour (form.php). Vous devez
dans un premier temps récupérer l'id pour faire appel à la fonction getSalarie($id) ; On utilise ensuite le
résultat de la requête pour remplir les champs du formulaire, que l'on modifiera par la suite.
form.php
<?php
require_once('fonctions.php') ;
$salarie = getSalarie($_GET['id']);
?>
<form method="get" action="listeSalaries.php">
Nom : <input type="text" name="nom" value="<?= $salarie['nom'] ?> "><br>
Prenom : <input type="text" name="prenom" value="<?= $salarie['prenom'] ?> "><br>
Date Naissance : <input type="text" name="dateNaissance" value="<?= $salarie['date_naissance'] ?> "><br>
Date Embauche : <input type="text" name="dateEmbauche" value="<?= $salarie['date_embauche'] ?> "><br>
salaire : <input type="text" name="salaire" value="<?= $salarie['salaire'] ?> "><br>
service : <input type="text" name="service" value="<?= $salarie['service'] ?> "><br>
<input type="hidden" name="id" value="<?= $salarie['idsalaries'] ?> "><br>
<input type="submit" name="update" value="Insérer">
</form>
Il est préférable de ne pas modifier l'identifiant qui est géré par la base de données cependant nous allons
avoir besoin de cet identifiant pour faire la mise à jour de l'enregistrement . Pour transmettre des données
sans qu'elles soient visibles par l'utilisateur il est possible de les mettre dans un « champ caché » donc de
type = hidden, ainsi la donnée sera transmisse avec les autres données.
<input type="text" name="id" value="<?php $salarie['idsalaries'] ?> "><br>
function getSalarie($id){
$requete = "SELECT * FROM salaries where idsalaries = $id";
$result = mysql_query( $requete ) or die( mysql_error() );
$salarie = mysql_fetch_assoc($result);
return $salarie;
}
Pour éviter d'avoir trop de pages à gérer vous pouvez envoyer les données du formulaire, vers le fichier
listeUtilisateur.php, ainsi on pourra visualiser immédiatement les modifications
Dans le script listeUtilisateur.php, on vérifie que le paramètre update est transmis . Si ce paramètre est
présent, on transmet les données du formulaire à la fonction updateSalarie($params)
if (isset($_REQUEST['update'])){
updateSalarie($_REQUEST);
}
La variable $_REQUEST est un tableau associatif constitué du contenu des variables $_GET, $_POST.
Il est à noter qu'il s'agit d'un exemple pédagogique dans la réalité les données d'un formulaire doivent être
transmises avec la méthode POST. Voir : http://www.xul.fr/ecmascript/get-post.php
function updateSalarie($params){
$nom = $params['nom'];
$prenom = $params['prenom'];
$id = $params['id'];
$requete = "update salaries set nom='$nom',prenom='$prenom' where idsalaries=$id";
mysql_query($requete) or die (mysql_error());
}
Attention : dans cet exemple seul le nom et prénom sont mise à jour .