par
Invité » 23 sept. 2005, 10:03
Dîtes, si vous croyez que j'ai trouvé ça toute seule...

Nan nan, c'est un informaticien qui m'a mise sur la piste. Après, c'est vrai j'ai fait quelques recherches sur la fonction et j'ai adapté
Ca marche très bien pour le INSERT mais j'avoue que je ne sais pas comment m'y prendre pour un UPDATE. Apparemment, ça ne fonctionne pas de la même façon. J'ai passé la journée d'hier à tenter différentes approches. Mais je pense que des éléments me manquent.
Par ailleurs, lorsque je veux modifier un enregistrement, j'ai toujours le souci de la liste déroulante: elle se réinitialise au lieu de rester là où elle a été sélectionnée. Je pense que les deux problèmes doivent être liés. Qu'en pensez-vous?
Je vous transmets le script originel, si vous pouviez m'orienter, je vous serai éternellement reconnaissante
Voici mon formulaire (une partie du moins) pour modifier l'enregistrement :
<?php
//Récupération de l'identifiant de l'enregistrement//
$IdSociete = $_POST['IdSociete'];
?>
<!--Formulaire-->
<form action="b_societes_mod3.php" method="post">
<!--Récupération du champ caché-->
<input type="hidden" name="IdSociete" value="<? echo $IdSociete; ?>">
<?php
//Connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Sélection de la table//
$requete="SELECT IdSociete, NomSociete, AutreNomSociete, RefGroupe, Specialite, Presentation,
InfCompl, PaysOrigine, Adresse, Tel, Fax, SiteSociete, NomReprFr, AdresseReprFr, TelReprFr, FaxReprFr, MAJ
FROM societes
WHERE IdSociete='".$IdSociete."'";
$result=mysql_query($requete);
//Affichage des données du tableau//
$NomSociete=mysql_result($result,0,'NomSociete');
$AutreNomSociete=mysql_result($result,0,'AutreNomSociete');
$RefGroupe=mysql_result($result,0,'RefGroupe');
$Specialite=mysql_result($result,0,'Specialite');
$Presentation=mysql_result($result,0,'Presentation');
$InfCompl=mysql_result($result,0,'InfCompl');
$PaysOrigine=mysql_result($result,0,'PaysOrigine');
$Adresse=mysql_result($result,0,'Adresse');
$Tel=mysql_result($result,0,'Tel');
$Fax=mysql_result($result,0,'Fax');
$SiteSociete=mysql_result($result,0,'SiteSociete');
$NomReprFr=mysql_result($result,0,'NomReprFr');
$AdresseReprFr=mysql_result($result,0,'AdresseReprFr');
$TelReprFr=mysql_result($result,0,'TelReprFr');
$FaxReprFr=mysql_result($result,0,'FaxReprFr');
$MAJ=mysql_result($result,0,'MAJ');
mysql_close($lien);
?>
Spécialité de la société : // Ici il faudrait : 1. que je puisse restituer la liste déroulante déjà sélectionnée, 2. que je puisse transmettre les nouvelles données s'il y a eu changement
<select name="Specialite"[]" size="3" multiple>
<option value="Editeur">Editeur</option>
<option value="Diffuseur-Distributeur">Diffuseur-Distributeur</option>
<option value="Producteur">Producteur</option>
</select>
Voici le second script, qui est censé effectuer la modification:
<?php
//Récupération des données du formulaire//
$IdSociete = $_POST['IdSociete'];
$NomSociete = $_POST['NomSociete'];
$AutreNomSociete = $_POST['AutreNomSociete'];
$IdGroupe = $_POST['IdGroupe'];
$Specialite = $_POST['Specialite'];
$Presentation = $_POST['Presentation'];
$InfCompl = $_POST['InfCompl'];
$PaysOrigine = $_POST['PaysOrigine'];
$Adresse = $_POST['Adresse'];
$Tel = $_POST['Tel'];
$Fax = $_POST['Fax'];
$SiteSociete = $_POST['SiteSociete'];
$NomReprFr = $_POST['NomReprFr'];
$AdresseReprFr= $_POST['AdresseReprFr'];
$TelReprFr = $_POST['TelReprFr'];
$FaxReprFr = $_POST['FaxReprFr'];
$MAJ = $_POST['MAJ'];
//Si le champ "Nom" n'est pas complété//
if(!$NomSociete)
{
print("<h3><center>Vous n'avez pas rempli le champ nom</h3></center>");
}
//Sinon confirmer la modification//
else
{
//connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//requête de mise à jour//
$requete="UPDATE societes SET
NomSociete='".$NomSociete."',
AutreNomSociete='".$AutreNomSociete."',
RefGroupe='".$IdGroupe."',
Specialite= '".$Specialite."',
Presentation='".$Presentation."',
InfCompl='".$InfCompl."',
PaysOrigine='".$PaysOrigine."',
Adresse='".$Adresse."',
Tel='".$Tel."',
Fax='".$Fax."',
SiteSociete='".$SiteSociete."',
NomReprFr='".$NomReprFr."',
AdresseReprFr='".$AdresseReprFr."',
TelReprFr='".$TelReprFr."',
FaxReprFr='".$FaxReprFr."',
MAJ='".$MAJ."'
WHERE IdSociete='".$IdSociete."'";
$result=mysql_query($requete) or die('Il y a eu une erreur : <strong>' . mysql_error() . '</strong><br>Dans : <br>' . $requete);
print ("<h2><center>La société a été modifiée </center></h2>");
if (isset ($Specialite)) echo "Insertion de la spécialité: '".$Specialite."'";
//fermeture de la base//
mysql_close($lien);
}
?>
Dîtes, si vous croyez que j'ai trouvé ça toute seule... :lol: :lol: Nan nan, c'est un informaticien qui m'a mise sur la piste. Après, c'est vrai j'ai fait quelques recherches sur la fonction et j'ai adapté O:)
Ca marche très bien pour le INSERT mais j'avoue que je ne sais pas comment m'y prendre pour un UPDATE. Apparemment, ça ne fonctionne pas de la même façon. J'ai passé la journée d'hier à tenter différentes approches. Mais je pense que des éléments me manquent.
Par ailleurs, lorsque je veux modifier un enregistrement, j'ai toujours le souci de la liste déroulante: elle se réinitialise au lieu de rester là où elle a été sélectionnée. Je pense que les deux problèmes doivent être liés. Qu'en pensez-vous?
Je vous transmets le script originel, si vous pouviez m'orienter, je vous serai éternellement reconnaissante :agenouille:
Voici mon formulaire (une partie du moins) pour modifier l'enregistrement :
[php]
<?php
//Récupération de l'identifiant de l'enregistrement//
$IdSociete = $_POST['IdSociete'];
?>
<!--Formulaire-->
<form action="b_societes_mod3.php" method="post">
<!--Récupération du champ caché-->
<input type="hidden" name="IdSociete" value="<? echo $IdSociete; ?>">
<?php
//Connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Sélection de la table//
$requete="SELECT IdSociete, NomSociete, AutreNomSociete, RefGroupe, Specialite, Presentation,
InfCompl, PaysOrigine, Adresse, Tel, Fax, SiteSociete, NomReprFr, AdresseReprFr, TelReprFr, FaxReprFr, MAJ
FROM societes
WHERE IdSociete='".$IdSociete."'";
$result=mysql_query($requete);
//Affichage des données du tableau//
$NomSociete=mysql_result($result,0,'NomSociete');
$AutreNomSociete=mysql_result($result,0,'AutreNomSociete');
$RefGroupe=mysql_result($result,0,'RefGroupe');
$Specialite=mysql_result($result,0,'Specialite');
$Presentation=mysql_result($result,0,'Presentation');
$InfCompl=mysql_result($result,0,'InfCompl');
$PaysOrigine=mysql_result($result,0,'PaysOrigine');
$Adresse=mysql_result($result,0,'Adresse');
$Tel=mysql_result($result,0,'Tel');
$Fax=mysql_result($result,0,'Fax');
$SiteSociete=mysql_result($result,0,'SiteSociete');
$NomReprFr=mysql_result($result,0,'NomReprFr');
$AdresseReprFr=mysql_result($result,0,'AdresseReprFr');
$TelReprFr=mysql_result($result,0,'TelReprFr');
$FaxReprFr=mysql_result($result,0,'FaxReprFr');
$MAJ=mysql_result($result,0,'MAJ');
mysql_close($lien);
?>
Spécialité de la société : // Ici il faudrait : 1. que je puisse restituer la liste déroulante déjà sélectionnée, 2. que je puisse transmettre les nouvelles données s'il y a eu changement
<select name="Specialite"[]" size="3" multiple>
<option value="Editeur">Editeur</option>
<option value="Diffuseur-Distributeur">Diffuseur-Distributeur</option>
<option value="Producteur">Producteur</option>
</select>
[/php]
Voici le second script, qui est censé effectuer la modification:
[php]<?php
//Récupération des données du formulaire//
$IdSociete = $_POST['IdSociete'];
$NomSociete = $_POST['NomSociete'];
$AutreNomSociete = $_POST['AutreNomSociete'];
$IdGroupe = $_POST['IdGroupe'];
$Specialite = $_POST['Specialite'];
$Presentation = $_POST['Presentation'];
$InfCompl = $_POST['InfCompl'];
$PaysOrigine = $_POST['PaysOrigine'];
$Adresse = $_POST['Adresse'];
$Tel = $_POST['Tel'];
$Fax = $_POST['Fax'];
$SiteSociete = $_POST['SiteSociete'];
$NomReprFr = $_POST['NomReprFr'];
$AdresseReprFr= $_POST['AdresseReprFr'];
$TelReprFr = $_POST['TelReprFr'];
$FaxReprFr = $_POST['FaxReprFr'];
$MAJ = $_POST['MAJ'];
//Si le champ "Nom" n'est pas complété//
if(!$NomSociete)
{
print("<h3><center>Vous n'avez pas rempli le champ nom</h3></center>");
}
//Sinon confirmer la modification//
else
{
//connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//requête de mise à jour//
$requete="UPDATE societes SET
NomSociete='".$NomSociete."',
AutreNomSociete='".$AutreNomSociete."',
RefGroupe='".$IdGroupe."',
Specialite= '".$Specialite."',
Presentation='".$Presentation."',
InfCompl='".$InfCompl."',
PaysOrigine='".$PaysOrigine."',
Adresse='".$Adresse."',
Tel='".$Tel."',
Fax='".$Fax."',
SiteSociete='".$SiteSociete."',
NomReprFr='".$NomReprFr."',
AdresseReprFr='".$AdresseReprFr."',
TelReprFr='".$TelReprFr."',
FaxReprFr='".$FaxReprFr."',
MAJ='".$MAJ."'
WHERE IdSociete='".$IdSociete."'";
$result=mysql_query($requete) or die('Il y a eu une erreur : <strong>' . mysql_error() . '</strong><br>Dans : <br>' . $requete);
print ("<h2><center>La société a été modifiée </center></h2>");
if (isset ($Specialite)) echo "Insertion de la spécialité: '".$Specialite."'";
//fermeture de la base//
mysql_close($lien);
}
?>[/php]