Dans :
INSERT INTO societes VALUES('','TEST3', '',')
tu as à la fin une virgule et une apostrophe seules, ce n'est pas bon$requete = "INSERT INTO societes VALUES('','".$NomSociete."', '".$AutreNomSociete."','".$IdGroupe."',";
if (!empty ($tabSpecialite)){
foreach($tabSpecialite as $cle => $valeur){
$requete.="'".$valeur."',";
}
}
$requete.="'".$Presentation."', '".$InfCompl."', '".$PaysOrigine."', '".$Adresse."', '".$Tel."', '".$Fax."',
'".$SiteSociete."','".$NomReprFr."', '".$AdresseReprFr."', '".$TelReprFr."', '".$FaxReprFr."', '".$MAJ."')";
$requete = substr($requete, 0, -2);
//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);
Voici le message d'erreur:Il y a eu une erreur : Erreur de syntaxe près de ''' à la ligne 2
Dans :
INSERT INTO societes VALUES('','TEST3', '','','', '', '', '', '', '', '','', '', '', '', '
$requete = "INSERT INTO societes VALUES('','".$NomSociete."', '".$AutreNomSociete."','".$IdGroupe."',";
Interrompue pour intégrer ma boucle sur le tableau qui correspond aux différentes valeurs transmises dans la liste déroulante (et dont la valeur $valeur est concaténée pour continuer la requête):
if (!empty ($tabSpecialite)){
foreach($tabSpecialite as $cle => $valeur){
$requete.="'".$valeur."',";
}
}
Puis je reprends et termine la requête (elle-même concaténée pour qu'il n'y ait pas d'interrruption:
$requete.="'".$Presentation."', '".$InfCompl."', '".$PaysOrigine."', '".$Adresse."', '".$Tel."', '".$Fax."',
'".$SiteSociete."','".$NomReprFr."', '".$AdresseReprFr."', '".$TelReprFr."', '".$FaxReprFr."', '".$MAJ."')";
Enfin, pour éviter les zigouigoui à la fin du type , j'intègre un bout de code qui est censé régler ce problème:INSERT INTO societes VALUES('','TEST3', '','','', '', '', '', '', '', '','', '', '', '', '
$requete = substr($requete, 0, -2);
Est-ce que j'ai bien compris? Si oui, je ne vois pas où se situe l'erreur. Quelqu'un a-t-il une idée?<?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."','";//interruption pour lancer la boucle pour les données de la liste déroulante
if (!empty ($tabSpecialite)){
foreach($tabSpecialite as $cle => $valeur){
$requete.="'".$valeur."',";//suite de la requête
}
}
// fin de la boucle et suite de la requête
$requete.="','".$Presentation."', '".$InfCompl."', '".$PaysOrigine."', '".$Adresse."', '".$Tel."', '".$Fax."',
'".$SiteSociete."','".$NomReprFr."', '".$AdresseReprFr."', '".$TelReprFr."', '".$FaxReprFr."', '".$MAJ."')";
$requete = substr($requete, 0, -2); //suppression de la , et du " en trop (enfin il paraît ... :) )
//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);
}
?>
...
//Résultat de la requête//
$result = mysql_query([b]$requete[/b]) 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);
}
je voudrais le contenu de la variable en gras, à ce moment, juste avant d'executer :$result = mysql_query([b]$requete[/b])
merci Soit je n'ai toujours pas compris ta question et tu es doté d'une grande patienceIl y a eu une erreur : Erreur de syntaxe près de ''' à la ligne 2
Dans :
INSERT INTO societes VALUES('','TEST5', '','','','', '', '', '', '', '', '','', '', '', '', '
$requete = substr($requete, 0, -2);
retire cette ligne et normalement tout devrait aller
$requete = substr($requete, 0, -2);
cette ligne n'est pas en trop, elle est simplement mal placéeif (!empty ($tabSpecialite)){
foreach($tabSpecialite as $cle => $valeur){
$requete.="'".$valeur."',";//suite de la requête
}
}
après chaque valeur on rajoute une virgule
$requete = "INSERT INTO societes VALUES('','".$NomSociete."', '".$AutreNomSociete."','".$IdGroupe."'";//ne pas écrire ,' ici
if (!empty ($tabSpecialite)){
foreach($tabSpecialite as $cle => $valeur){
$requete.=",'".$valeur."'";//mais l'écrire ici avant la variable
}
}
// fin de la boucle et suite de la requête
$requete.=",'".$Presentation."', '".$InfCompl."', '".$PaysOrigine."', '".$Adresse."', '".$Tel."', '".$Fax."',
'".$SiteSociete."','".$NomReprFr."', '".$AdresseReprFr."', '".$TelReprFr."', '".$FaxReprFr."', '".$MAJ."')";