<!--Formulaire-->
<form action="test_add_soc2.php" method="post">
<!--Tableau d'affichage des champs du formulaire-->
<table>
<tr>
<td><h4>Nom de la société :</h4></td>
<td><input type="text" name="NomSociete" size=50></td>
</tr>
<tr>
<td><h4>Autre nom de la société : </h4></td>
<td><input type="text" name="AutreNomSociete" size=50></td>
</tr>
<tr>
<td><h4>Groupe :</h4></td>
<td><select name="IdGroupe">
<option value="">
<?php
//Connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Sélection de la table groupe//
$requete="SELECT * FROM groupes";
$result=mysql_query($requete);
// Tant qu'il y a des données dans le tableau, on le parcourt//
while ($val=mysql_fetch_array($result))
{
print ('<option value="'.$val["IdGroupe"].'">');
print ($val["NomGroupe"]);
}
//Fermeture de la base//
mysql_close($lien);
?>
</select></td>
</tr>
<tr>
<td><h4>Spécialité de la société : </h4></td>
<td><select name="Specialite[]" size="3" multiple>
<option value="Editeur">Editeur</option>
<option value="Diffuseur-Distributeur">Diffuseur-Distributeur</option>
<option value="Producteur">Producteur</option>
</select></td>
</tr>
<tr>
<td><h4>Présentation : </h4></td>
<td><textarea name="Presentation" rows="8" cols="50"></textarea></td>
</tr>
<tr>
<td><h4>Informations complémentaires : </h4></td>
<td><textarea name="InfCompl" rows="8" cols="50"></textarea></td>
</tr>
<tr>
<td><h4>Pays d'origine : </h4></td>
<td><input type="text" name="PaysOrigine" size=50></td>
</tr>
<tr>
<td><h4>Coordonnées : </h4></td>
</tr>
<tr>
<td>Adresse : </td>
<td><textarea name="Adresse" rows="3" cols="35"></textarea></td>
</tr>
<tr>
<td>Téléphone : </td>
<td><input type="text" name="Tel" size=14></td>
</tr>
<tr>
<td>Fax : </td>
<td><input type="text" name="Fax" size=14></td>
</tr>
<tr>
<td><h4>Site de la société : </h4></td>
<td><input type="text" name="SiteSociete" size=50></td>
</tr>
<tr>
<td><h4>Nom du représentant en France : </h4></td>
<td><input type="text" name="NomReprFr" size=50></td>
</tr>
<tr>
<td><h4>Coordonnées du représentant en France : </h4></td>
</tr>
<tr>
<td>Adresse : </td>
<td><textarea name="AdresseReprFr" rows="3" cols="35"></textarea></td>
</tr>
<tr>
<td>Téléphone : </td>
<td><input type="text" name="TelReprFr" size=14></td>
</tr>
<tr>
<td>Fax : </td>
<td><input type="text" name="FaxReprFr" size=14></td>
</tr>
<tr>
<td>Dernière mise à jour : </td>
<td><input type="text" name="MAJ" size=8></td>
</tr>
</table>
<br><center><input type="submit" value="Enregistrer"></center>
</form>
</body>
</html>
J'ai un script d'enregistrement qui se présente ainsi:
<?php
//Récupération des données du formulaire//
$NomSociete = $_POST['NomSociete'];
$AutreNomSociete = $_POST['AutreNomSociete'];
$IdGroupe = $_POST['IdGroupe'];
$Specialite = (isset ($_POST['Specialite']))?$_POST['Specialite']:null;
$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("<h2><center>Veuillez donner un nom</center></h2>");
}
//Sinon confirmer l'enregistrement//
else
{
//Connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Requête d'enregistrement//
$requete = "INSERT INTO societes VALUES('','".$NomSociete."', '".$AutreNomSociete."','".$IdGroupe."','".$Specialite."', '".$Presentation."',
'".$InfCompl."', '".$PaysOrigine."', '".$Adresse."', '".$Tel."', '".$Fax."', '".$SiteSociete."',
'".$NomReprFr."', '".$AdresseReprFr."', '".$TelReprFr."', '".$FaxReprFr."', '".$MAJ."')";
//Résultat de la requête//
$result = mysql_query($requete) or die('Il y a eu une erreur : <strong>' . mysql_error() . '</strong><br>Dans : <br>' . $requete);
print ("<h3><center>La société a été enregistrée</h3></center>");
//Fermeture de la base//
mysql_close($lien);
}
?>
<h3><center>Retourner au <a href="../administration_sommaire.html" > sommaire</a></center></h3>
</body>
</html>
Et si je comprends bien, je dois rajouter un morceau de code (je ne sais pas où) qui ressemblerait à ça?if(isset($enregistrer))
{
foreach ($Specialite as $Choix)
{
echo ($Choix)
}
}
//Fermeture de la base//
mysql_close($lien);
if(isset($enregistrer))
{
foreach ($Specialite as $Choix)
{
echo ($Choix)
}
}
ne fera qu'afficher la liste des spécialités choisies, la liste des <option> sur lesquelles a cliqué l'utilisateur
$requete = "INSERT INTO profil (nom, prenom, langages) VALUES ('".$nom."', '".$prenom."',";
if (!empty($tabLangages)) {
foreach($tabLangages as $cle => $valeur) {
$requete .= "'".$valeur."', ";
}
}
// on enlève l'espace et la virgule en trop
$requete = substr($requete, 0, -2);
// on exécute
mysql_query($requete);
mais on aurait pu avoir besoin de faire une requête pour chaque valeur, pour créer des relations entre deux tables par exemplep.s: A propos, comme promis, tu as eu une mention spéciale pour mon mémoire
$requete = "INSERT INTO societes VALUES('','".$NomSociete."', '".$AutreNomSociete."','".$IdGroupe."','".$Specialite."', '".$Presentation."',
'".$InfCompl."', '".$PaysOrigine."', '".$Adresse."', '".$Tel."', '".$Fax."', '".$SiteSociete."',
'".$NomReprFr."', '".$AdresseReprFr."', '".$TelReprFr."', '".$FaxReprFr."', '".$MAJ."')";
Est-ce que j'ai le droit d'écrire:
$requete = "INSERT INTO societes VALUES('','".$NomSociete."', '".$AutreNomSociete."','".$IdGroupe."',";
if (!empty ($tabSpecialite)){
foreach($tabSpecialite as $cle => $valeur){
$requete.="'".$valeur."',";
}
}
, '".$Presentation."',
'".$InfCompl."', '".$PaysOrigine."', '".$Adresse."', '".$Tel."', '".$Fax."', '".$SiteSociete."',
'".$NomReprFr."', '".$AdresseReprFr."', '".$TelReprFr."', '".$FaxReprFr."', '".$MAJ."')";
Questions:// on enlève l'espace et la virgule en trop
$requete = substr($requete, 0, -2); C'est quoi cet espace et cette virgule? C'est à l'affichage?<?php
//Récupération des données du formulaire//
$NomSociete = $_POST['NomSociete'];
$AutreNomSociete = $_POST['AutreNomSociete'];
$IdGroupe = $_POST['IdGroupe'];
$Specialite = (isset ($_POST['Specialite']))?$_POST['Specialite']:null;
$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("<h2><center>Veuillez donner un nom</center></h2>");
}
//Sinon confirmer l'enregistrement//
else
{
//Connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Requête d'enregistrement//
$requete = "INSERT INTO societes VALUES('','".$NomSociete."', '".$AutreNomSociete."','".$IdGroupe."',";
if (!empty ($tabSpecialite)){
foreach($tabSpecialite as $cle => $valeur)
{
$requete.="'".$valeur."',";
}
}
$requete = substr($requete, 0, -2);
$requete .= ')';
"('".$Presentation."', '".$InfCompl."', '".$PaysOrigine."', '".$Adresse."', '".$Tel."', '".$Fax."', '".$SiteSociete."',
'".$NomReprFr."', '".$AdresseReprFr."', '".$TelReprFr."', '".$FaxReprFr."', '".$MAJ."')";
//Résultat de la requête//
$result = mysql_query($requete) or die('Il y a eu une erreur : <strong>' . mysql_error() . '</strong><br>Dans : <br>' . $requete);
print ("<h3><center>La société a été enregistrée</h3></center>");
//Fermeture de la base//
mysql_close($lien);
}
?>
Il m'affiche cette erreur:
Il y a eu une erreur : Erreur de syntaxe près de '')' à la ligne 1
Dans :
INSERT INTO societes VALUES('','TEST3', '',')
// La ligne 1 c'est la balise "<html>"...