| Dahut.be |
Site de développement en PHP - MySQL |
||||
| Le site | News | Aide Développement | Téléchargement | Contact | |
Cette partie va nous permettre de gérer un seul champ dans une base de donnée. Elle est souvent reprise en administration pour gérer une seule variable et la reprendre dans un formulaire réservé aux utilisateurs. Elle va également nous permettre d'insérer des variables dans les $HTTP_POST_VARS.
La table de départ (préalablement créée) doit comporter un seul champs, éventuellement un deuxième utilisé comme clé primaire de type auto_increment.
Ce petit formulaire va:
Différentes parties sont là uniquement pour ne pas afficher de messages d'erreur lorsqu'il n'y a pas de valeurs inscrites.

La première case permet de sélectionner des données existantes. La liste de choix permet de sélectionner l'action à effectuer. Le troisième permet d'insérer une nouvelle valeur ou de modifier une valeur existante selon le choix effectué en 2.
La programmation nécessite de rentrer 4 variables:
$titre reprend le titre du menu utilisateur
$variable1 reprend le nom de la variable dans le formulaire
$nom_champ reprend le nom du champ dans la table Mysql
$table le nom de la table dans la base de donnée
L'ouverture de la base de donnée se fait par un fichier en includes require('../includes/start.php'), la fermeture par require('../includes/stop.php') à créer au préalable.
Le fichier header.php reprend l'entête de la page, également en include php
| <?php $titre="titre"; $variable1="variable1"; // variable1= le nom de la variable dans le formulaire $nom_champ="nom-champ"; $table="nom-table"; // nécessaire s'il n'y a pas encore de résultats dans la table. Sinon, message d'erreur require('../includes/start.php'); $requete="SELECT * FROM `$table` ORDER BY `$nom_champ` ASC"; $valeur=mysql_query($requete); $ligne=mysql_num_rows($valeur); if ($ligne==0) { $requete="insert into $table Set $nom_champ=' '"; $erreur=mysql_query($requete); } // fin vérification table vide include ('header.php'); $matrice=array(); // début du tests auto-invocant if (isset($HTTP_POST_VARS['go'])) { // variable reprenant les 3 paramètres du formulaire $choix =$HTTP_POST_VARS["$variable1"]; $action=$HTTP_POST_VARS['action']; $nouveau=ADDSLASHES($HTTP_POST_VARS['nouveau']); // vérification du deuxième bouton if ($action=="Effacer"){ // cas effacer, on efface le choix sélectionné dans la liste déroulante require('../includes/start.php'); $requete="delete from $table where $nom_champ='$choix'"; $valeur=mysql_query($requete); $requete="SELECT * FROM `$table`"; $valeur=mysql_query($requete); $ligne=mysql_num_rows($valeur); if ($ligne==0) { $requete="insert into $table Set $nom_champ=' '"; $erreur=mysql_query($requete); } }elseif ($action=="Modifier"){ // Cas modifier: on remplace la valeur dans la liste déroulante par celle de la zone texte Nouvelle valeur if ($HTTP_POST_VARS['nouveau']=="") { // on teste si la valeur de remplacement est nulle. Dans ce cas aucune action Echo"Aucune valeur de remplacement sélectionnée, recommencez"; }else{ // sinon on effectue le remplacement require('../includes/start.php'); $requete="UPDATE $table SET $nom_champ='$nouveau' WHERE $nom_champ='$choix'"; $valeur=mysql_query($requete); } // fin de modifier }elseif (($action=="Insérer")and($nouveau<>'')){ // insertion d'une nouvelle valeur si elle n'est pas nulle require('../includes/start.php'); $requete="insert into $table Set $nom_champ='$nouveau'"; $erreur=mysql_query($requete); $requete="delete from $table where $nom_champ=' '"; $valeur=mysql_query($requete); } } require('../includes/start.php'); $requete="SELECT * FROM `$table` ORDER BY `$nom_champ` ASC"; $valeur=mysql_query($requete); $erreur1=mysql_error(); print($erreur1); $i=1; $ligne=0; while ($tableau=mysql_fetch_array($valeur)){ // on récupère les données de la table //print($i); $matrice[$i]=STRIPSLASHES($tableau["$nom_champ"]); $i=$i+1; } require('../includes/stop.php'); $ligne=$i; $i=1; $formulaire="<form method=\"POST\"><h2>Types: ".$titre."</h2><p><select size=\"1\" name=\"".$variable1."\">"; while ($i<$ligne){ $formulaire=$formulaire."<option>".$matrice[$i]."</option>"; $i=$i+1; } $formulaire=$formulaire." <select name=\"action\"><option>Insérer</option><option>Modifier</option><option>Effacer</option></select> nouvelle valeur: <input type=\"text\" name=\"nouveau\" size=\"30\"><input type=\"submit\" value=\"Envoyer\" name=\"go\"></p></form>"; print($formulaire); ?> |