Remplissage d'une bd à partir d'un formulaire

Résolu/Fermé
birdsfly Messages postés 240 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 11 octobre 2013 - 1 juin 2009 à 15:35
birdsfly Messages postés 240 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 11 octobre 2013 - 2 juin 2009 à 13:45
Saluut,
J'ai un problème :(
voilà, j'ai une base de données que je dois remplir à partir d'un formulaire avec une zone de texte et bouton, donc je dois utiliser la GET (je pense) , voici le code que j'ai utilisé :
<?php
$base = mysql_connect ("localhost", "root", "");
mysql_select_db ("essai") ;
// lancement de la requete
$var=$_GET['nom'];
$sql = 'INSERT INTO essai VALUES ($var)';
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
mysql_close();
?>
L'execution me donne le msg d'erreur suivant :
Erreur SQL !INSERT INTO essai VALUES ($var)
Unknown column '$var' in 'field list'
Est-ce qu'il y a une erreur de syntaxe ou ... ?? pouvez vous m'aider svp?
Merci d'avance

9 réponses

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
1 juin 2009 à 15:39
Si ton formulaire comporte la balise form écrite avec method="post" (ce qui est plutôt conseillé) tu dois remplacer $_GET['nom'] par $_POST['nom']
0
birdsfly Messages postés 240 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 11 octobre 2013 15
1 juin 2009 à 15:51
Merci
J'ai remplacé GET par POST, mais l'erreur est tjr là, je pense que le problème est avec la variable $var :

$var=$_GET['nom'];
$sql = 'INSERT INTO essai VALUES ($var)';


Qu'est ce que vous en pensez?? Peut etre elle doit etre déclarée quelque part??
Merci
0
Bonjour

Tu as un problème au niveau de la chaîne PHP et un au niveau de la requêtee mysql
Au niveau PHP : si tu veux que ta variable soit remplacée par sa valeur, il faut que la chaîne soit délimitée par des double quotes et non pas par des simples
Au niveau Mysql : la valeur , sauf si le champ est de type numérique, doit être entre quotes (simples ou doubles)
Donc au final :
$sql = "INSERT INTO essai VALUES ('$var')";

Ceci ne marchera que si ta table essai a UNE SEULE colonne

Pour le GET ou le POST, pas la peine d'essayer, il suffit de mettre la bonne méthode du premier coup, celle qui est indiquée dans le formulaire (GET si aucune méthode n'est indiquée)
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
1 juin 2009 à 16:31
Ben justement,
$_GET['nom'] deviens $_POST['nom']
0
?? j'ai dû mal lire, je ne vois pas ce qui permet de trancher.
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475 > le père
1 juin 2009 à 16:45
Voir les précédents messages.
Je lui ai suggéré d'utilisé method="post" dans son formulaire.

En plus ton message était pas présent sur le forum quand j'ai répondu. :)
0
le père > arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016
1 juin 2009 à 16:52
Ok, comme ton message s'est glissé juste après le mien, j'ai cru que c'était à moi que tu répondais.
Par contre, pour le GET ou le POST, je ne sais toujours pas s'il a changé dans le formulaire ou le script, enfin, si ça marche maintenant...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
birdsfly Messages postés 240 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 11 octobre 2013 15
1 juin 2009 à 16:40
Wiiii ça marche, merciii merci bcp
0
hanagi Messages postés 135 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 13 décembre 2012 3
1 juin 2009 à 17:06
oui le père tous marche bien pour moi (elle) grace à vous et à arthezius et merci bcpp . j'ai remplacé les GET par des POST, mais jusqu'à présent je ne sais pas kel différence entre les 2 méthodes?? une idée??
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
1 juin 2009 à 17:09
La method GET fait passé les variables par l'url. N'importe qui peux donc voir les variables qui sont utilisé.
D'une manière général, il est préférable d'utilisé la méthode post.
0
hanagi Messages postés 135 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 13 décembre 2012 3
1 juin 2009 à 17:07
j'avais le méme prob que birdsfly, et je pense ke ça marche pour lui aussi
0
hanagi Messages postés 135 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 13 décembre 2012 3
1 juin 2009 à 17:12
aaah wi mnt j comprends. merci :)

Et vous avez vraiment raison avec : « La recherche commence là où s'arrête la connaissance. » ;)

à+
0
birdsfly Messages postés 240 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 11 octobre 2013 15
2 juin 2009 à 13:45
merciii pour votre aide, ts marche bien grace à vous
0