Probleme avec requete SQL Update

Eléphanteau du PHP | 28 Messages

11 mai 2010, 09:15

Bonjour à tous !

J'ai crée un petit formulaire où je souhaiterai modifier les informations d'un utilisateur dans ma base de données,pour cela j'ai crée un formulaire spécifique.Voici le code de ma page du formulaire:
<center><br><b><u>Modifier un utilisateur :</u></b></center>
		<br>
		<br>
		<center><br><u>Choix du l'utilisateur a modifier:</u><br>
		<br>
		<form method="post" name="recherche">

<?php
$sql="SELECT ID_Users, Utilisateurs FROM users ORDER BY Utilisateurs";
$resultat=mysql_query($sql, $id_link);
echo '<select name="Utilisateurs">';
echo '<option value="" selected></option>';
       
while ($rang=mysql_fetch_array($resultat)){
        echo "<option value=\"".$rang['ID_Users']."\"";
        if(isset($_POST['Utilisateurs']) && $rang['ID_Users']==$_POST['Utilisateurs']) echo " selected=\"selected\"";
        echo ">". $rang['Utilisateurs']."</option>";
}
echo '</select>';
       

?>
<input type="submit" value="Selectionner" /></center>
</form>
<br>
<br>
<br>
<FORM ACTION="structure/user_update.php" method="post">
<br>
<?php
$donnees = array();
if(isset($_POST['Utilisateurs'])) {
        $users= htmlentities($_POST['Utilisateurs']);
        $reponse = mysql_query("SELECT * FROM users WHERE ID_Users =".$users);
        $donnees = mysql_fetch_array($reponse);
}
?>
		<br>
<center>
		<b>Login :</b> <input id="login" type="text" name="Utilisateurs" maxlength="50" size="25" value="<?php echo (isset($donnees['Utilisateurs']) ? $donnees['Utilisateurs'] : ''); ?>">&nbsp;
<br>
<br>	
		<b>Mot de passe :</b> <input id="mot_de_passe" type="text" name="Mot_de_passe" maxlength="50" size="20" value="<?php echo (isset($donnees['Mot_de_passe']) ? $donnees['Mot_de_passe'] : ''); ?>">&nbsp;
<br>
<br>
		<b>Service :</b> <input id="Service" type="text" name="Service" maxlength="50" size="25" value="<?php echo (isset($donnees['Service']) ? $donnees['Service'] : ''); ?>">&nbsp;
<br>
<br>		
		<b>Agence :</b> <input id="Agence" type="text" name="Agence" maxlength="50" size="25" value="<?php echo (isset($donnees['Agence']) ? $donnees['Agence'] : ''); ?>">&nbsp;
<br>
<br>
<input type="submit" class="envoyer" value="Modification">
</form>
Comme vous pouvez le voir il y a bien 2 formulaires différents,le premier formulaire me permet de sélectionner l'utilisateur dans ma base de données et le 2eme me sert à envoyer les données que j'ai modifier.Voici le code de ma page User_update.php:
<?php

//connection au serveur:  
	$connexion = mysql_connect('localhost','test','test') ; 

// Test de la connexion  
 if (!$connexion) { 
    echo "La connexion au serveur n'a pu être établie<BR>"; 
    exit;  
 }  
  
//Test de l'accès à la base  
 if (!mysql_select_db("users",$connexion)) { 
    echo "L'accès à la base n'est pas permis<BR>"; 
    exit;  
 }  
// Création des variables

	$ID_Users=""; if(!empty($_POST["ID_Users"]))
		$ID_Users=$_POST["ID_Users"];
		
	$Utilisateurs=""; if(!empty($_POST["Utilisateurs"]))
		$Utilisateurs=$_POST["Utilisateurs"];
   
	$Mot_de_passe=""; if(!empty($_POST["Mot_de_passe"]))
		$Mot_de_passe=$_POST["Mot_de_passe"];
   
	$Service=""; if(!empty($_POST["Service"]))
		$Service=$_POST["Service"];
   
	$Agence=""; if(!empty($_POST["Agence"]))
		$Agence=$_POST["Agence"];
 
 //Ajoute la nouvelle fiche

 $sql= "UPDATE users 
	 SET Utilisateurs='".$Utilisateurs."', Mot_de_passe='".$Mot_de_passe."', Service='".$Service."', Agence='".$Agence."'
	 WHERE ID_Users='".$ID_Users."'";
		
 // execution SQL  
  
	$interrogation=mysql_query($sql,$connexion) or die('Connexion impossible : ' . mysql_error());

 // on ferme la connexion à la base  
 mysql_close(); 
    
  
    
    if($interrogation)  
 {  
 echo 'Modification de l\utilisateur réussi !';  
 }  
  
 else {  
 echo 'Les variables du formulaire ne sont pas déclarées';  
 }  
?>
Je pense avoir situer le problème par contre je ne sais pas du tout comment le régler,le soucis est que je ne récupère pas le POST de ID_Users car ce n'est pas dans le même formulaire et je ne sais absolument pas comment faire pour le régler.J'ai tester ma rêquete Update dans ma base de données et elle marche correctement.

YaunBeug
Invité n'ayant pas de compte PHPfrance

11 mai 2010, 10:39

salut, si ton problème est juste que tu n'arrive pas a faire passer une variable d'un formulaire à l autre tu peux faire

dans le premier formulaire
setCookie("supercookie",$_POST["ID_Users"]);

et tu le récupère dans le deuxieme:
$ID_Users=$_COOKIE['supercookie'];