{MySQL}

chady2009 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je suis entrain de développer une interface commerciale entre distributeur et revendeur, chaque distributeur sidentifie pour avoir accès à son espace personel, du coup j'ai une base de données avec une table qui s'appelle revendeurs qui contient les champs identifiant(celui du distributeur), nom, tel,mail...
le souci c'est lorsque un distributeur veut modifier quelques données de l'un de ses revendeur,
il arrive sur une page là ou il y a la liste de ses revendeurs et à coté de chacun un bouton modifier

<?php
$hostname_canalbd="localhost";
$username_canalbd="root";
$password_canalbd="";
$database_canalbd="base_authentification";
$connexion=mysql_connect($hostname_canalbd,$username_canalbd,$password_canalbd,$database_canalbd) or die(mysql_error());
mysql_select_db($database_canalbd, $connexion) or die ("problème dans selection base");

$reponse = mysql_query("SELECT * FROM revendeurs"); // Requête SQL


// On fait une boucle pour lister tout ce que contient la table :

while ($donnees = mysql_fetch_array($reponse) )

{

?>

<table border="1" align="center">
<tr>
<td>Revendeur </td>
<td><input type='text' name='Revendeur' value="<?php echo $donnees['nomRevendeur']; ?>"></td>
</tr>
<tr>
<td>Adresse</td>
<td><input type='text' name='ModifierAdresse' value="<?php echo $donnees['adresse']; ?>"></td>
</tr>
<tr>
<td>Code Postal</td>
<td><input type='text' name='ModifierCodePostal' value="<?php echo $donnees['codePostal']; ?>"></td>
</tr>
<tr>
<td>Ville</td>
<td><input type='text' name='ModifierVille' value="<?php echo $donnees['ville']; ?>"></td>
</tr>
<tr>
<td>Numéro de téléphone</td>
<td><input type='text' name='ModifierTelephone' value="<?php echo $donnees['telephone']; ?>"></td>
</tr>
<tr>
<td>Adresse électronique</td>
<td><input type='text' name='ModifierMail' value="<?php echo $donnees['mail']; ?>"></td>
</tr>
<tr>
<td align="center">
<?php

echo '<form><input type="button" value="modifier" OnClick="window.location.href=\'Modifier.php\'"></form>';
?></td>
</tr>
</table>


<?php
}

mysql_close(); // Déconnexion de MySQL
?>



quand le distributeur appuie sur modifier, il arrive sur une page avec un formulaire pré rempli avec les anciennes données

session_start();
$ligne= $_SESSION['ligne'];


$query_string = "SELECT nomRevendeur, adresse,codePostal,ville,telephone,mail FROM revendeurs WHERE ligne=$ligne";
$query = mysql_query($query_string);


?>

<HTML>
<HEAD><TITLE>Modifier un Revendeur</TITLE></HEAD>
<BODY>
<p>
Modifier un revendeur :
</p>
</br>
Veuillez saisir les informations suivantes :
</br>
</br>
<FORM ACTION= "Modifierbdd.php" METHOD = "POST">
<p>
<label for="ligne">Nom du nouveau revendeur : </label>
<INPUT TYPE="hidden" NAME="ligne" value="<?php echo mysql_result($query,0,"ligne"); ?>">

</p>

<p>
<label for="Nom">Nom du nouveau revendeur : </label>
<INPUT TYPE="text" NAME="Nom" value="<?php echo mysql_result($query,0,"nomRevendeur"); ?>">

</p>

<p>
<label for="Adresse">Adresse : </label>
<INPUT TYPE="text" NAME="Adresse" value="<?php echo mysql_result($query,0,"adresse"); ?>">
</p>

<p>
<label for="Code Postal">Code Postal : </label>
<INPUT TYPE="text" NAME="CodePostal" value="<?php echo mysql_result($query,0,"codePostal");?>">
</p>

<p>
<label for="Ville">Ville : </label>
<select name="Ville">
<option value="<?php echo mysql_result($query,0,"ville");?>"></option>
<option value="Tunis">Tunis</option>
<option value="Nabeul">Nabeul</option>
<option value="Bizerte">Bizerte</option>

</select>
<p>
<label for="Telephone">Téléphone : </label>
<INPUT TYPE="text" NAME="Telephone" value="<?php echo mysql_result($query,0,"telephone"); ?>">
</p>
<p>
<label for="Mail">Adresse Electronique : </label>
<INPUT TYPE="text" NAME="Mail" value="<?php echo mysql_result($query,0,"mail"); ?>">
</p>

<p>
<INPUT TYPE="submit" NAME="Valider" VALUE = "Valider">
</p>
</FORM>

</BODY>
</HTML>
<?php

mysql_close(); // Déconnexion de MySQL
?>

et là j'essaye de me positionner sur la bonne ligne de la table en définissant une variable de session ligne pour l'utiliser après quand je modifie ma base de données

session_start();
$identifiant= $_SESSION['identifiant'];
$nomRevendeur=$_POST['Nom'];
$ligne=$_POST['ligne'];
$adresse=$_POST['Adresse'];
$codePostal=$_POST['CodePostal'];
$ville=$_POST['Ville'];
$telephone=$_POST['Telephone'];
$mail=$_POST['Mail'];
// On ajoute une entrée avec mysql_query
mysql_query(" UPDATE revendeurs SET nomRevendeur='".$nomRevendeur."', adresse='".$adresse."', codePostal='".$codePostal."',ville='".$ville."',telephone='".$telephone."',mail='".$mail."' WHERE ligne='".$lihttps://forums.commentcamarche.net/forum/bases-de-donnees-30#gne."'");


?>
<HTML>
<HEAD><TITLE>Ajouter un Revendeur</TITLE></HEAD>
<BODY>
<p>
Modifications effectuées avec succès </br>
<a href="MesRevendeurs.php">Retour à la section Mes Revendeurs</a>
<a href="accueil.php">Retour à la page d'accueil</a>
</p>
</BODY>
</HTML>

le problème c'est que j'arrive pas à me positionner au bon endroit/ligne, la variable ligne est ou bien ignoré ou encore garde toujours la meme valeur


est ce que quelqu'un peut me donner un coup de main ?
merci d'avance

3 réponses

giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
bonjour,

le principe n'est pas de se positionner sur la bonne ligne mais le suivant :
on connait la ligne et donc les infos de la ligne à modifier
on récupère les informations à changer

et on fait un update set avec les nouvelles info where les zones = les anciennes infos

exemple

j'ai une zone nom que je veux changer.
l'ancien nom est toto, le nouveau est titi
la commande devient

update matable set nom=titi where nom=toto

titi et toto éténat le contenu de varaibles.
0
chady2009 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
oui je comprends bien le principe sauf que l'ancien nom (toto) est variable selon le bouton modifier sur lequel on a appuyer, les boutons modifier sont générés dans une boucle qui affiche à chaque fois une ligne de ma table et à la fin un bouton modifier, je veux qu'en cliquant sur modifier une ligne le numero de la ligne correspondante soit transmis dans le script suivant. vous voyez ce que je veux dire ?
0
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
Pour l'exemple je remplace la boucle par deux lignes


<html>
<head>
<script language="JavaScript" type="text/javascript">
function change(nom) {
/*alert (nom);*/
document.formulaire.variable.value = nom;
document.formulaire.submit;
}

</script>

</head>
<body>
<?php
//je rempace la boucle par plusieurs lignes pour exemple
$nom1="bernard";
$nom2="simon";
?>
<form name='formulaire' action='xxx.php' method='POST'>
<input type='submit' value='<?php echo $nom1; ?>' onclick=change('<?php echo $nom1; ?>');>
<br><br>

<input type='submit' value='<?php echo $nom2; ?>' onclick=change('<?php echo $nom2; ?>');>
<input type='hidden' name='variable' value=''>
</form>
</body>
</html>

explication quand je clique sur une ligne j'exécute le javascript change qui reçoit un paramètre qui sera transmis dans le champ caché.

le fichier xxx.php ne fait qu'afficher le contenu passé

<?php
echo "<pre>";print_r($_POST);echo "</pre>";
?>


0