Php:ajout d'un enregistrement

Résolu/Fermé
infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009 - 16 avril 2009 à 16:55
infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009 - 16 avril 2009 à 22:05
Bonjour,
je travaille sur mon projet de fin d'étude;et j'ai eu beaucoup de probleme.alor mtn je fai des petit code pour voir si sa marche ou nn c apré k je continue sur mon projet.
alor j'ai fai un peti code. un formulaire je fai entré des données ses donnée vont a la base de données
je travaille avec easyphp 2.0 mon probleme c 'est que les donnée ne s'inserent pas a la base je vous montre le code c un peti code je fai avec lui des éssai :
<?php

$nom=""; if (isset($_POST["nom"])) $nom=$_POST["nom"];
$prenom =""; if (isset($_POST["prenom"])) $prenom=$_POST["prenom"];
if (isset($_POST["aaa"]))
echo "connexion a mysql";

$db="base";
$connexion = mysql_connect("localhost", "root") or die("connexion impossible");
echo "connexion réussie"; echo "\n\n";


mysql_select_db($db,$connexion) or die("selection de la base de données impossible");
echo "choix de la base réussie";
echo "\n\n" ;

$query = "INSERT INTO table(nom,prenom) VALUES($nom , $prenom)" ;
mysql_query($query,$connexion) or die("insertion impossible");
mysql_close($connexion);
?>
je recoi un msg :"insertion impossibl" je sais pa s pourquoi je pense k la requete est juste
svp aidez moi,j'aibesoin de votre aide sa fait une semaine que je suis bloqué.
merci d'avance
A voir également:

4 réponses

P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
16 avril 2009 à 21:13
Autour des noms de colonnes, pas des valeurs.
INSERT INTO table (nom, prenom) VALUES('linda' , 'amina');

De plus table est un mot réservé en sql, il faut donc que tu change ce nom en un autre.
3
infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009 2
16 avril 2009 à 22:05
100000000000000000000000 merciiiiiiiiiiiiiiiiiiiiiiiiiiiii
tu as toute a fait raison
merci merci merci c'est vraiment genti de ta part
et a partir de maintenant je vais commencé mon projet de fin d'étude parce que le travaille de toute a l'heure c'était un petit exemple que mon promotteur ma demandé de faire pour avoir des idée,alor si j'aurais des probleme j'espér que j'obtient ton aide aussi.merci beaucoup
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
16 avril 2009 à 16:58
surement un pb de clef primaire....
dans ta table "table", quels sont les champs que tu as? lequel est clef primaire?
si ca se trouve, il détecte un doublon au niveau de la clef primaire, et donc empeche l'isntertion

je te conseille de rajouter un champs "user_id" que tu définira en temps quel clef primaire, et ce sera la seule clef primaire (fais ca dans phpmyadmin)
1
merci pour ta réponse
oui j'ai crée une base de données dans phpmyadmin j'ai nommé "base" et j'ai crée une table nommée "table" avec deux champs 1ere nom (clé primaire) et le 2em prenom
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
16 avril 2009 à 16:59
Bonjour.
Un conseil: essaie de ne pas trop écrire en sms, et d'utiliser le bouton Conserver la mise en forme lorsque tu colle du code ici (le petit bouton avec une page blanche et des < > bleues juste au dessus de la zone d'écriture).

Pour ton code, tu a une erreur dans ta requete en effet: il te manque des ' pour encadrer les variables $nom et $prenom. Essaie plutot comme ceci:

<?php

$nom=""; if (isset($_POST["nom"])) $nom=$_POST["nom"];
$prenom =""; if (isset($_POST["prenom"])) $prenom=$_POST["prenom"];
if (isset($_POST["aaa"]))
echo "connexion a mysql";

$db="base";
$connexion = mysql_connect("localhost", "root") or die("connexion impossible");
echo "connexion réussie"; echo "\n\n";


mysql_select_db($db,$connexion) or die("selection de la base de données impossible");
echo "choix de la base réussie";
echo "\n\n" ;

$query = "INSERT INTO table(nom,prenom) VALUES('$nom' , '$prenom')" ;
mysql_query($query,$connexion) or die("insertion impossible");
mysql_close($connexion);
?>



0
merci pour ta réponse
j'ai fai ce que vous m'avez demandé mais sa ne marche pas aussi c'est la meme probleme (insertion impossible)
si vous une autre chose a me consiellez n'hésitez pas car je n'arrive pas a trouvé la solution
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161 > infor3lmd
16 avril 2009 à 17:27
Si ta table ne contient que les champs nom et prenom, essaie plutot ceci:
<?php

$nom=""; if (isset($_POST["nom"])) $nom=$_POST["nom"];
$prenom =""; if (isset($_POST["prenom"])) $prenom=$_POST["prenom"];
if (isset($_POST["aaa"]))
echo "connexion a mysql";

$db="base";
$connexion = mysql_connect("localhost", "root") or die("connexion impossible");
echo "connexion réussie"; echo "\n\n";


mysql_select_db($db,$connexion) or die("selection de la base de données impossible");
echo "choix de la base réussie";
echo "\n\n" ;

$query = "INSERT INTO table VALUES('$nom' , '$prenom')" ;
mysql_query($query,$connexion) or die("insertion impossible");
mysql_close($connexion);
?>


Si elle en contient d'autres, et qu'ils ont une valeur par défaut, essaie ceci:
<?php

$nom=""; if (isset($_POST["nom"])) $nom=$_POST["nom"];
$prenom =""; if (isset($_POST["prenom"])) $prenom=$_POST["prenom"];
if (isset($_POST["aaa"]))
echo "connexion a mysql";

$db="base";
$connexion = mysql_connect("localhost", "root") or die("connexion impossible");
echo "connexion réussie"; echo "\n\n";


mysql_select_db($db,$connexion) or die("selection de la base de données impossible");
echo "choix de la base réussie";
echo "\n\n" ;

$query = "INSERT INTO table('nom','prenom') VALUES('$nom' , '$prenom')" ;
mysql_query($query,$connexion) or die("insertion impossible");
mysql_close($connexion);
?>
0
infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009 2 > freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016
16 avril 2009 à 17:32
je vous remerciez encore
mais sa marche pas;je n'arrive pas a voir ou est le probleme,normalement la requête est juste
je sais pas pourquoi sa marche pas
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161 > infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009
16 avril 2009 à 17:34
<?php

$nom=""; if (isset($_POST["nom"])) $nom=$_POST["nom"];
$prenom =""; if (isset($_POST["prenom"])) $prenom=$_POST["prenom"];
if (isset($_POST["aaa"]))
echo "connexion a mysql";

$db="base";
$connexion = mysql_connect("localhost", "root") or die("connexion impossible");
echo "connexion réussie"; echo "\n\n";


mysql_select_db($db,$connexion) or die("selection de la base de données impossible");
echo "choix de la base réussie";
echo "\n\n" ;

$query = "INSERT INTO table('nom','prenom') VALUES('$nom' , '$prenom')" ;
mysql_query($query,$connexion) or die("insertion impossible: $query <br>".mysql_error());
mysql_close($connexion);
?>


Avec ce code, l'erreur sera un peu plus explicitée, et l'on pourra voir ce qui ne va pas.
0
infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009 2 > freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016
16 avril 2009 à 17:41
bonne idée voila je vous passe l'erreur :
connexion réussie choix de la base réussie insertion impossible:
INSERT INTO table ('nom','prenom') VALUES('' , '')
Erreur de syntaxe près de 'table ('nom','prenom') VALUES('' , '')' à la ligne 1
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
16 avril 2009 à 19:58
Il ne faut pas mettre de quotes autour des noms de colonnes.
0
infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009 2
16 avril 2009 à 20:29
je vous remerciez pour votre réponse
vous voulez dire que la requête devient comme sa :INSERT INTO table (nom,prenom) VALUES($nom , $prenom)
j'ai fait sa et j'ai toujours la même erreur : INSERT INTO table (nom,prenom) VALUES(linda , amina)
Erreur de syntaxe près de 'table (nom,prenom) VALUES(linda , amina)' à la ligne 1
svp aidez moi
0