Insertion SQL via formulaire
killermano66
Messages postés
249
Statut
Membre
-
Stef60 Messages postés 257 Statut Membre -
Stef60 Messages postés 257 Statut Membre -
Bonjour à tous et merci de votre attention,
Je suis actuellement en train de créer un script d'espace membre, celui-ci fonctionne trés bien mais je veux y créer une page ou l'utilisateur peut entrer diverses informations à sa convenance telle que : pays, ville, msn etc ...
Le problème est que ma requête d'insertion semble incorrecte vu qu'elle m'affiche une erreur. Et je n'arrive pas à trouver le problème, je fais donc appel à votre aide et vous met le code en dessous :
<body>
Informations personnelles :<br />
<form id="modif_profil" name="modif" method="post" action="membre.php" />
Pays : <input type="text" name="pays" value="<?php echo htmlentities(trim($_POST['pays'])); ?>" /><br />
Ville : <input type="text" name="ville" value="<?php echo htmlentities(trim($_POST['ville'])); ?>" /><br />
Code Postal : <input type="text" name="CP" value="<?php echo htmlentities(trim($_POST['code_postal'])); ?>" /><br />
</form>
<?php
// lancement de la requête d'insertion
$sql = 'INSERT INTO membre VALUES(""
,"'.mysql_escape_string($_POST['pays']).'"
,"'.mysql_escape_string($_POST['ville']).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
?>
</body>
Si quelqu'un à une idée, je suis bien entendu preneur. Merci d'avançe ;)
Brice.
Je suis actuellement en train de créer un script d'espace membre, celui-ci fonctionne trés bien mais je veux y créer une page ou l'utilisateur peut entrer diverses informations à sa convenance telle que : pays, ville, msn etc ...
Le problème est que ma requête d'insertion semble incorrecte vu qu'elle m'affiche une erreur. Et je n'arrive pas à trouver le problème, je fais donc appel à votre aide et vous met le code en dessous :
<body>
Informations personnelles :<br />
<form id="modif_profil" name="modif" method="post" action="membre.php" />
Pays : <input type="text" name="pays" value="<?php echo htmlentities(trim($_POST['pays'])); ?>" /><br />
Ville : <input type="text" name="ville" value="<?php echo htmlentities(trim($_POST['ville'])); ?>" /><br />
Code Postal : <input type="text" name="CP" value="<?php echo htmlentities(trim($_POST['code_postal'])); ?>" /><br />
</form>
<?php
// lancement de la requête d'insertion
$sql = 'INSERT INTO membre VALUES(""
,"'.mysql_escape_string($_POST['pays']).'"
,"'.mysql_escape_string($_POST['ville']).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
?>
</body>
Si quelqu'un à une idée, je suis bien entendu preneur. Merci d'avançe ;)
Brice.
A voir également:
- Insertion SQL via formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Touche insertion clavier - Guide
- Insertion video powerpoint - Guide
- Insertion sommaire word - Guide
13 réponses
Oui il lui faut tout les champs, et dans les valeur il faut lui spécifier une valeur nulle pour qu'il ne l'insère pas
ici on insère une valeur à nom_champs2.
INSERT INTO nom_table ( [nom_champs1], [nom_champs2], [nom_champs3]) VALUES ("", "valeur2", "");
ici on insère une valeur à nom_champs2.
Erreur : Notice: Undefined index: pays in D:\EasyPHP 2.0b1\www\site\espace_membre\modifier_profil.php on line 23
Notice: Undefined index: ville in D:\EasyPHP 2.0b1\www\site\espace_membre\modifier_profil.php on line 24
Erreur SQL !INSERT INTO membre VALUES(" " ,"" ,"")
Column count doesn't match value count at row 1
Merci de ta réponse.
Notice: Undefined index: ville in D:\EasyPHP 2.0b1\www\site\espace_membre\modifier_profil.php on line 24
Erreur SQL !INSERT INTO membre VALUES(" " ,"" ,"")
Column count doesn't match value count at row 1
Merci de ta réponse.
INSERT INTO nom_table ( [nom_champs1], [nom_champs2], [nom_champs3])
VALUES ("valeur1", "valeur2", "valeur3");
voila a quoi devrait ressembler ta requête sql.
les "nom_champs" doivent être ici dans le MEME ordre que dans la base de données. les "valeur" doivent être EXACTEMENT dans le MEME ordre.
éviter les caractères spéciaux, les accents, etc etc.
VALUES ("valeur1", "valeur2", "valeur3");
voila a quoi devrait ressembler ta requête sql.
les "nom_champs" doivent être ici dans le MEME ordre que dans la base de données. les "valeur" doivent être EXACTEMENT dans le MEME ordre.
éviter les caractères spéciaux, les accents, etc etc.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok mais dans ma BDD j'ai avant les champs pays, ville, code_postal les champs id, pseudo, pass je dois les spécifier quand même ?
Merci
Merci
Merci de ta réponse, je te met ici ma requête :
$sql = INSERT INTO membre ([id], [login], [pass_md5], [pays], [ville], [code_postal])
VALUES ("", "", "", "$pays", "$ville", "$code_postal");
Tout est bien dans le bon ordre, je viens de le vérifier sur ma BDD mais ça ne fonctionne pas et m'affiche l'erreur :
Parse error: parse error, unexpected T_STRING in D:\EasyPHP 2.0b1\www\site\espace_membre\modifier_profil.php on line 22
Merci encore de ton attention.
$sql = INSERT INTO membre ([id], [login], [pass_md5], [pays], [ville], [code_postal])
VALUES ("", "", "", "$pays", "$ville", "$code_postal");
Tout est bien dans le bon ordre, je viens de le vérifier sur ma BDD mais ça ne fonctionne pas et m'affiche l'erreur :
Parse error: parse error, unexpected T_STRING in D:\EasyPHP 2.0b1\www\site\espace_membre\modifier_profil.php on line 22
Merci encore de ton attention.
vas sur ta bdd et tente de rentrer ta requete directement en remplaçant les variables par des valeur quelconque pour tester la requête.
sinon essais de faire un echo $sql ; qui affichera la requête sous forme sql.
le parse error indique généralement un oublie de guillemet.
faire attention qu'il n'y en ai pas dans les valeurs sinon il faudra utiliser des caractères d'échappement pour le forcer a les prendre.
sinon essais de faire un echo $sql ; qui affichera la requête sous forme sql.
le parse error indique généralement un oublie de guillemet.
faire attention qu'il n'y en ai pas dans les valeurs sinon il faudra utiliser des caractères d'échappement pour le forcer a les prendre.
Voilà ce que me renvois la requête :
requête SQL:
INSERT INTO membre( [id], [login], [pass_md5], [pays], [ville], [code_postal] )
VALUES (
"", "", "", "pays", "ville", "code_postal"
)
MySQL a répondu:Documentation
#1064 - Erreur de syntaxe près de '[id], [login], [pass_md5], [pays], [ville], [code_postal])
VAL' à la ligne 1
Sinon non, i n'ya pas de guillemet à l'interieur de mes champs et le echo $sql ne me renvois rien si ce n'est la même erreur cité juste avant.
Encore merci.
requête SQL:
INSERT INTO membre( [id], [login], [pass_md5], [pays], [ville], [code_postal] )
VALUES (
"", "", "", "pays", "ville", "code_postal"
)
MySQL a répondu:Documentation
#1064 - Erreur de syntaxe près de '[id], [login], [pass_md5], [pays], [ville], [code_postal])
VAL' à la ligne 1
Sinon non, i n'ya pas de guillemet à l'interieur de mes champs et le echo $sql ne me renvois rien si ce n'est la même erreur cité juste avant.
Encore merci.
$sql = INSERT INTO membre ("id,login,pass_md5,pays,ville,code_postal")
VALUES ("'','','', '$pays', '$ville', '$code_postal'");
copie colle celle là pour tester normalement c'est bon...
par contre c'est un insert into (il vas crée une nouvelle ligne dans ta table)
pour completer une ligne déjà existante c'est un update qu'il faut faire.
$sql = "UPDATE nom_table SET nom_champs0 = 'valeur_champs0' --->(a chaque champs a modifier répéter la syntaxe) WHERE nom_champ='nom_champ_a_modifier' ";
VALUES ("'','','', '$pays', '$ville', '$code_postal'");
copie colle celle là pour tester normalement c'est bon...
par contre c'est un insert into (il vas crée une nouvelle ligne dans ta table)
pour completer une ligne déjà existante c'est un update qu'il faut faire.
$sql = "UPDATE nom_table SET nom_champs0 = 'valeur_champs0' --->(a chaque champs a modifier répéter la syntaxe) WHERE nom_champ='nom_champ_a_modifier' ";
Merci encore mais j'ai toujours cette même erreur. Par contre je ne comprend pas trop la syntaxe de la seconde commande qu'il faut que j'utilise, pourrais tu me l'expliquer un peu mieu s'ilteplait ?
merci
merci
Bonjour,
et comme ca :
$sql = "INSERT INTO membre (id, login, pass_md5, pays, ville, code_postal)
VALUES ( "" , "" , "" , "$pays" , "$ville" , "$code_postal" )";
ou comme ca:
$sql = "INSERT INTO membre (`id`, `login`, `pass_md5`, `pays`, `ville`, `code_postal`)
VALUES ( "" , "" , "" , "$pays" , "$ville" , "$code_postal" )";
et comme ca :
$sql = "INSERT INTO membre (id, login, pass_md5, pays, ville, code_postal)
VALUES ( "" , "" , "" , "$pays" , "$ville" , "$code_postal" )";
ou comme ca:
$sql = "INSERT INTO membre (`id`, `login`, `pass_md5`, `pays`, `ville`, `code_postal`)
VALUES ( "" , "" , "" , "$pays" , "$ville" , "$code_postal" )";