{MySQL}

Fermé
chady2009 Messages postés 2 Date d'inscription vendredi 28 août 2009 Statut Membre Dernière intervention 29 août 2009 - 28 août 2009 à 21:28
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 - 29 août 2009 à 14:48
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 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
29 août 2009 à 09:27
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 vendredi 28 août 2009 Statut Membre Dernière intervention 29 août 2009
29 août 2009 à 12:36
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 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
29 août 2009 à 14:48
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