bouton radio et soumission de 2 variables ds formulaire

manegedaix

Membre confirmé
10 Avril 2007
71
1
Bonjour, je vais essayé de vous expliquer le plus simplement et clairement possible mon probleme:

J'ai une base de donnée avec une table contenant deux données: Nom et Prenom

J'arrive a lister mes membres. Le probleme est pour les supprimer. Je souhaite les afficher dans un tableau avec des boutons radio devant chaque nom. Cocher le bouton, envoyer, et... supprimer le membre.

Cela j'arrive a le faire avec ces 2 codes:

Bloc de code:
<?php
global $user;
 $cnx = mysql_connect( "localhost", "...", "..." ) 
         or die ("couldn't connect to server");

  /* selectionne tous les noms de cavalier de la table cavalier */

  $query = "SELECT nomcavalier,prenomcavalier,numlicence,nomentier FROM cavalier WHERE utilisateur='$user->name' ORDER BY nomcavalier";
  $result = mysql_query($query)
            or die ("Couldn't execute query.");       

  echo "<div style='margin-left: .1in'>\n
  <h3>Quel cavalier voulez vous supprimer?</h3>\n";

  /* Creation du formulaire */

  echo "<form action='http://....fr/?q=node/13' method='POST'>\n"; 
  echo "<table cellpadding='5' border='1'>  <tr>

<th>Nom du cavalier</th>
<th>Prenom du cavalier</th>
<th>Numero de licence</th>

</tr>";
 
  while($row = mysql_fetch_assoc($result))        
  {
     extract($row);                                    
     echo "<tr><td valign='top' width='15%' 
                   style='font-weight: bold; 
                   font-size: 1.2em'\n";
     echo "<input type='radio' name='nomcavalier' 
                  value='$nomcavalier'\n";  
    echo ">$nomcavalier</td>";       
echo "<input type='hidden' name='nomentier' value='$nomentier'>";                                
    echo "<td>$prenomcavalier</td>";
echo "<td>$numlicence</td></tr>";
  }
  echo "</table>";
 
  echo "<p><input type='submit' value='Supprimer le cavalier'>  
        </form></p>\n";    
              
?>

et la validation:

Bloc de code:
<?php
 global $user;
  //connection au serveur
  $cnx = mysql_connect( "localhost", "...", "..." ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "..." ) ;
 
  //récupération des valeurs des champs:
//nom du cavalier:
  $nomcavalier     = $_POST["nomcavalier"] ;
//nom entier:
  $nomentier     = $_POST["nomentier"] ;
  
/* Recherche du nom du cavalier vide */                      
     
        if (empty($nomcavalier) )          
        {
                  echo '<font color="red">Veuillez selectionner un cavalier à supprimer.</font>'; 
}
 
else {   
 //création de la requête SQL:
  
$sql = "DELETE FROM `cavalier` WHERE utilisateur='$user->name' AND nomcavalier='$nomcavalier' AND nomentier='$nomentier'  ";
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
  
  //affichage des résultats, pour savoir si l'insertion a marchée:
  if($requete)
  {
    echo'<font color="red">Le cavalier à été supprimé de votre base de donnée, que voulez vous faire?</font>'; 
  }
  else
  {
    echo("L'insertion a échouée") ;
  }
}

?>

Ca fonctionne sauf que dans le cas de deux personnes ayant le meme nom de famille, je supprime les 2.

J'ai donc crée la variable nomentier. Je souhaite la prendre en compte dans mon formulaire mais qu'elle ne soit pas apparente dans mon tableau.


Ma question: Comment prendre en compte deux variables (nomcavalier et prenomcavalier) avec un seul bouton radio?

Ou avec une autre methode, comment prendre en compte la variable nomentier (selectionnée par le bouton radio) sans l'afficher dans mon tableau?

Merci de vos reponses.
 
Salut,
logiquement chaque entrée de ta base possède un ID (idéalement en auto-incrément). Aussi chaque cavalier dispose t-il d'un numéro l'idendifiant de façon unique et ce quelque soit le nom et alors même qu'il existe des doublons. Lorsque tu demandes la suppression d'un cavalier, ce n'est pas le nom le critère de suppression, mais l'iD (c'est cette élément qu'il faut passer en paramètre). Se faisant tu ne supprimes qu'un est un seul cavalier...
 
Merci de ta reponse mais le truc c est que j'ai mal fait les choses au depart. Je n'ai pas d'id autoincrémenté. Du coup j ai crée la variable nomunique qui est la composition du nom + du prenom. Du coup nomunique est "unique".

Mon probleme c'est que je souhaite le prendre en compte mais pas l'afficher. Comment faire?
 
Salut,
La question que tu poses (le problème) n'est qu'une rustine.
Si tu n'en passes pas maintenant par un ID, tu seras ennuyé par la suite pour tout un tas d'autres choses.

Aussi essaie de faire les choses "clean" dès le départ; cela te simplifiera l'existence pour la suite.