La mise à jour d’une table
Écrivez le code permettant la mise à jour : $sql = « UPDATE eleve SET nom = ’ ».$_REQUEST[’nom’]. »’, ». « prenom = ’ ».$_REQUEST[’prenom’]. »’, ». « adresse = ’ ».$_REQUEST[’adresse’]. »’, ». « ville = ’ ».$_REQUEST[’ville’]. »’, ». « cp = ’ ».$_REQUEST[’codepostal’]. »’, ». « pays = ’ ».$_REQUEST[’pays’]. »’, ». « sexe = ’ ».$_REQUEST[’sexe’]. »’, ». « naissance = ’ ».$_REQUEST[’naissance’]. »’, ». « taille = ’ ».$_REQUEST[’taille’]. »’, ». « email = ’ ».$_REQUEST[’email’]. »’, ». « telephone = ’ ».$_REQUEST[’telephone’]. »’, ». « lv = ’ ».$_REQUEST[’lv’]. »’ ». » WHERE ideleve = ’ ».$_REQUEST[’id’]. »’ »; La mise à jour se fait directement avec les valeurs transmises. Ce n’est pas très judicieux dans la mesure où vous aviez mis en place toute une politique de vérification de champs pour la création. Rajoutez donc tous ces tests : if ($_REQUEST[’enregistre’] == « oui ») { if (empty($_REQUEST[’nom’]) || empty($_REQUEST[’prenom’]) || empty($_REQUEST[’adresse’]) || ✂ empty($_REQUEST[’ville’]) || empty($_REQUEST[’codepostal’]) || ✂ empty($_REQUEST[’pays’]) || empty($_REQUEST[’naissance’]) || ✂ empty($_REQUEST[’telephone’]) || empty($_REQUEST[’lv’])) die(« ERREUR : tous les champs doivent être remplis. »); if ($_REQUEST[’sexe’]!= »masculin » && $_REQUEST[’sexe’]!= »feminin ») die(« ERREUR : choisissez votre sexe. »); $reg_email = « /^[\w\.-]+@[\w\.-]+\.[a-z]{2,3}$/i »; if (preg_match($reg_email,$_REQUEST[’email’]) == 0) die(« ERREUR : adresse email non valide. »); if ($_REQUEST[’taille’]<=100 || $_REQUEST[’taille’]>=220) die(« ERREUR : la taille n’est pas valide. »); La mise à jour d’une table Chapitre 11 LE GUIDE COMPLET 301 $sql = « UPDATE eleve SET nom = ’ ».$_REQUEST[’nom’]. »’, ». « prenom = ’ ».$_REQUEST[’prenom’]. »’, ». « adresse = ’ ».$_REQUEST[’adresse’]. »’, ». « ville = ’ ».$_REQUEST[’ville’]. »’, ». « cp = ’ ».$_REQUEST[’codepostal’]. »’, ». « pays = ’ ».$_REQUEST[’pays’]. »’, ». « sexe = ’ ».$_REQUEST[’sexe’]. »’, ». « naissance = ’ ».$_REQUEST[’naissance’]. »’, ». « taille = ’ ».$_REQUEST[’taille’]. »’, ». « email = ’ ».$_REQUEST[’email’]. »’, ». « telephone = ’ ».$_REQUEST[’telephone’]. »’, ». « lv = ’ ».$_REQUEST[’lv’]. »’ ». » WHERE ideleve = ’ ».$_REQUEST[’id’]. »’ »; mysql_query ($sql); } En rassemblant toutes les parties, votre script eleve_edite.php prend la forme suivante : « ; echo « »; echo « »; echo « »; echo « »; $liendb = mysql_connect(« localhost », « root », « »); mysql_select_db (« test »); if ($_REQUEST[’enregistre’] == « oui ») { if (empty($_REQUEST[’nom’]) || empty($_REQUEST[’prenom’]) || empty($_REQUEST[’adresse’]) || ✂ empty($_REQUEST[’ville’]) || empty($_REQUEST[’codepostal’]) || ✂ empty($_REQUEST[’pays’]) || empty($_REQUEST[’naissance’]) || ✂ empty($_REQUEST[’telephone’]) || empty($_REQUEST[’lv’])) die(« ERREUR : tous les champs doivent être ✂ remplis. »); if ($_REQUEST[’sexe’]!= »masculin » && $_REQUEST[’sexe’]!= »feminin ») die(« ERREUR : choisissez votre sexe. »); $reg_email = « /^[\w\.-]+@[\w\.-]+\.[a-z]{2,3}$/i »; if (preg_match($reg_email,$_REQUEST[’email’]) == 0) die(« ERREUR : adresse email non valide. »); 302 LE GUIDE COMPLET Chapitre 11 La gestion d’une base de données if ($_REQUEST[’taille’]<=100 || $_REQUEST[’taille’]>=220) die(« ERREUR : la taille n’est pas valide. »); $sql = « UPDATE eleve SET nom = ’ ».$_REQUEST[’nom’]. »’, ». « prenom = ’ ».$_REQUEST[’prenom’]. »’, ». « adresse = ’ ».$_REQUEST[’adresse’]. »’, ». « ville = ’ ».$_REQUEST[’ville’]. »’, ». « cp = ’ ».$_REQUEST[’codepostal’]. »’, ». « pays = ’ ».$_REQUEST[’pays’]. »’, ». « sexe = ’ ».$_REQUEST[’sexe’]. »’, ». « naissance = ’ ».$_REQUEST[’naissance’]. »’, ». « taille = ’ ».$_REQUEST[’taille’]. »’, ». « email = ’ ».$_REQUEST[’email’]. »’, ». « telephone = ’ ».$_REQUEST[’telephone’]. »’, ». « lv = ’ ».$_REQUEST[’lv’]. »’ ». » WHERE ideleve = ’ ».$_REQUEST[’id’]. »’ »; mysql_query ($sql); } echo « admin – ecole
« ; echo « :: fiche d’élève ✂ [« .$_REQUEST[’id’]. »]
« ; $sql = « SELECT * FROM eleve WHERE ideleve = ✂ ’ ».$_REQUEST[’id’]. »’ »; $resultat = mysql_query ($sql); $eleve = mysql_fetch_array ($resultat); ?>
La suppression
DELETE Le fichier eleve_edite.php permet déjà de mettre à jour les informations du profil « élève ». Vous allez maintenant faire en sorte de pouvoir supprimer un profil d’élève depuis ce fichier. La commande SQL utilisée pour une suppression d’enregistrement est DELETE. La syntaxe est la suivante : DELETE FROM nom_table WHERE clause Si vous souhaitez effacer la ligne dont l’ideleve est 4, écrivez : DELETE FROM eleve WHERE ideleve = ’4’ Pour pouvoir inclure le code de mise à jour, vous aviez ajouté un input hidden qui indiquait au script de réaliser l’action de mise à jour. Deux actions sont désormais possibles : la mise à jour et l’effacement. La technique n’est donc plus valide. Pour contourner le problème, remplacez le bouton enregistre par un menu déroulant et un bouton. Le menu déroulant permettra de choisir l’action à réaliser sur la fiche ; il portera le nom « action ». Ainsi, plutôt 308 LE GUIDE COMPLET Chapitre 11 La gestion d’une base de données que tester la variable $_REQUEST[’enregistre’], vous allez tester la variable $_REQUEST[’action’] et agir en fonction de sa valeur.