Problème base de donnée php-mysql [Résolu/Fermé]

Signaler
Messages postés
148
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
11 septembre 2008
-
 Lolpetaxi -
Bonjour !

J'ai un problème pour insérer un nouveau contact dans un carnet d'adresse.
J'ai une base de donnée de départ avec des contacts dedant et je veux ajouter un contact par l'intermédiaire d'un formulaire html.
J'ai bien précisé dans la page html action="ajout.php" method="post", mais il ne veut pas ajouter de contacts. J'utilise Wamp Server

Une partie du code php de ma page : ajout.php :

host="localhost";
$bdd="contacts";
$table="carnet";

$connect=mysql_connect($host,"root","");
$select=mysql_select_db($bdd,$connect);


$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$societe=$_POST['societe'];
$adresse=$_POST['adresse'];
$cp=$_POST['cp'];
$ville=$_POST['ville'];
$pays=$_POST['pays'];
$tel=$_POST['tel'];
$mail=$_POST['mail'];
$sweb=$_POST['sweb'];

$query="INSERT INTO $table VALUES ('0',$nom,$prenom,$societe,$adresse,$cp,$ville,$pays,$tel,$mail,$sweb)";
mysql_query($query,$connect);

J'ai peut être oublié des informations ! Je m'en excuse demandé moi !

Merci d'avance

16 réponses


salut
quel est le premier champs de ta table ?
c'est quoi un entier? en créant ta table tu as cocher index?
auto incrément?
si c'est le cas essaye sans mettre '0' et en méttant ' ' ou alors '1'
je crois que le sindex commence à 1 sans certitude.
Messages postés
148
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
11 septembre 2008
71
Les champs sont dans l'odre que j'ai donné j'ai un champs identifiant mais je ne demande pas qu'on le rentre... Le champs id est auto increment et c'est la clé primaire.
Messages postés
148
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
11 septembre 2008
71
j'ai essayé ce que tu m'as di nabbla mais ça ne change rien.
Messages postés
148
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
11 septembre 2008
71
1064:You have an error in your SQL syntax; check the manual that corresponds to your MySql server version for the right syntax to use near 'aze,aer,aertn,uia,7875,iezue,utar,8776,uhzehz,uahsnaq)' at line 1

J'ai demander à voir le numéro d'erreur ! Quelqu'un a une idée pour la résoudre?
Messages postés
2027
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
je pense moi aussi que le soucis vient de champ d'id vu que tu le fixes à 0 et qeu c'est un champ unique il ne veut pas l'inserer c'est pourquoi je te propose d'agir de la façon suivante :
$requete="INSERT INTO $table															(nom,prenom,societe,adresse,cp,ville,pays,tel,mail,sweb) 	
				VALUES
($nom,$prenom,$societe,$adresse,$cp,$ville,$pays,$tel,$mail,$sweb) 	

Si ça ne fonctionne toujours pas, je te conseil de faire un echo $requete.Puis tu la sélectionne, tu la copies, tu vas sur ton PhpMyAdmin, tu clic sur SQL afin de rentrer une requête SQL à la main, la tu colles ta requête et vu qu'elle est fausse MySQL va crier et t'afficher un joliu message d'alert qui va te dire pourquoi ta requête ne fonctionne pas..ça aide au debug.

Voilà, je pense que ça devrait focntionner..

Bonne journée
Messages postés
148
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
11 septembre 2008
71
Merci

d'abord se fut ça
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '://f' at line 1

donc j'ai enlevé ://

après ça

#1136 - Column count doesn't match value count at row 1
dc j'ai mis un identifiant

et maintenant ça !!!
#1054 - Unknown column 'Aeg' in 'field list'

bref je suis perdu
Messages postés
2027
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
oula qu'il est pas sympa MySql avec toi ! :D
Bon, t'as bien mis un champ en début genre id qui est la la clef avec un auto increment ? !
sinon pour ne pas te prendre la tête et voir d'ou veint le bug je te conseil de faire le truc genre pas à pas...
->genre tu vas sous SQl pour rentrer une requete à la main et t'en fais une toute bidon genre :
INSERT INTO carnet															(nom) VALUES ('Test')

la si ca ne passe pas c'est qu'il y a un sérieux soucis... :D
Et puis tu fais ca à chaque fois en rajoutant un champs et tu veras quel champ couille dans la synthaxe ou comment avoir une synthaxe correcte.
Bon Courage.
Messages postés
148
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
11 septembre 2008
71
ok je vais essayer ! c'est peut être le champs ID je vais le virer pour voir
Messages postés
2027
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
oula, nan laisse la champ Id car il faut qu'il y ai pour chaque enregistreement un champ qui est la clef , ce champs contient ce qui rend unique l'enregistrement.. laisse ton id.
Id sous la forme de :
id int primary key auto-increment
EnJoY :D
Messages postés
148
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
11 septembre 2008
71
ok je vais essayer ! c'est peut être le champs ID je vais le virer pour voir
Messages postés
148
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
11 septembre 2008
71
ok !
Messages postés
148
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
11 septembre 2008
71
Ca marche du moins en partie
En fait j'ai mis des ' ' qd il s'agissait de varible de type varchar...
J'ai juste un prob ac l'id, je suis obligé de lui passé un nombre ! il ne me l'augmente pas, je suis obligé dans le code de modifire le numéro ! pas trés pratique ...

il me dit qu'il y a déjà un 1
1062: Duplicate entry '1' for key 1
Messages postés
148
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
11 septembre 2008
71
Ca marche du moins en partie
En fait j'ai mis des ' ' qd il s'agissait de varible de type varchar...
J'ai juste un prob ac l'id, je suis obligé de lui passé un nombre ! il ne me l'augmente pas, je suis obligé dans le code de modifire le numéro ! pas trés pratique ...

il me dit qu'il y a déjà un 1
1062: Duplicate entry '1' for key 1
Messages postés
148
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
11 septembre 2008
71
c'est bon j'ai résoli le prob!!! une hitoire de ' ' sur le premier et aussi dans la base... !!!

Merci beaucoup !
slt j'ai un problem je veux ouvrire la connection avec une base de donnée crée avec easyphp ,je ne ss pas ou ai le problem ,j'ai un formulaire ke j'ai crée avec dreamwever
<form method="post" action="Untitled-4.php3">
<p>nom
<input type="text" name="nom">
</p>
<p>ur
<input type="text" name="url">
</p>
<p>
<input type="submit" value="Envoyer">
</p>
</form>
ensuite j'ai crée un autre dans j'ai affecter ce code php
<?
$host = "localhost";
$user = "root";
$pwd ="";

$NomBase = "sites";
$NomTable = "s1";

$connect = mysql_connect("$host","$user","$pwd");
mysql_select_db($NomBase,$connect);
$nom=$_POST['nom'];
$url=$_POST['url'];
$requete = "insert into $NomTable (nom,url) values("jalal","yyy");";
$res = mysql_query($requete,$connect);

?>
Messages postés
5
Date d'inscription
mardi 3 juillet 2007
Statut
Membre
Dernière intervention
4 juillet 2007
1
$requete = "insert into $NomTable (nom,url) values("jalal","yyy");"; ici enleve le premier ; ensuite tu utilise " et ensuite le meme pour tes données... changent pour ' ce qui donne:
$requete = "insert into $NomTable (nom,url) values('jalal','yyy')";
ensuite ici il ne faut pas oublier une chose... or die(mysql_error()); au moins la tu seras d'ou viens ton erreur
$res = mysql_query($requete,$connect);
ce qui donne au final
$requete = "insert into $NomTable (nom,url) values('jalal','yyy')";
$res = mysql_query($requete,$connect)or die(mysql_error());
j'ai fais cela mé en revenant a ma base je ne trouve pas l'enregistrement ,je ne sais pas est ce le faite d'utiliser dreamweaver ,
Messages postés
5
Date d'inscription
mardi 3 juillet 2007
Statut
Membre
Dernière intervention
4 juillet 2007
1 > jalal
Non je en pense pas... lorsque tu valide ce formulaire tu ne reçois aucune erreur?

un petit problème mon ami.
Voyon je ne toucherai pas à ce que tu as fais.
Mais on va reprendre un autre exemple simple et tu comprendras une fois de bon.


Alimenter une table


Pour commencer vous allez créer la table infos_tbl dans phpMyAdmin comme suit :
requête SQL:
CREATE TABLE infos_tbl (id INT (11) not null AUTO_INCREMENT, nom VARCHAR (35) not null , prenom VARCHAR (35) not null , email VARCHAR (70) not null , icq INT (11) null , titre VARCHAR (70) not null , url VARCHAR (255) not null , PRIMARY KEY (id), INDEX (id), UNIQUE (id))

Ensuite nous allons utiliser le formulaire ci dessous qui va alimenter la table :


On va crééer un formulaire html que tu vas nommer insertion.html par exemple.

voici le code htm

<html>
<form method="POST" action="add.php">
<center>
<input type="text" name="nom" size="20" value="nom" maxlength="35"> <input type="text" name="prenom" size="20" value="prenom" maxlength="35"><br>
<input type="text" name="email" size="20" value="email" maxlength="70"> <input type="text" name="icq" size="20" value="icq" maxlength="11"><br>
<input type="text" name="titre" size="20" value="titre du site" maxlength="70"> <input type="text" name="url" size="20" value="url du site" maxlength="255"><br>
<input type="submit" value="Envoyer" name="envoyer">
</center>
</form>
</html>


Vous noterez les "maxlength" dans chacun des champs, ceci permet de brider le nombre de caractères maximum que le visiteur peut entrer dans le champ, bien sûr ici le "maxlength" correspond au nombre de caractères spécifié dans la création de la table infos_tbl. Cela a un intérêt, celui d'être sûr que le visiteur ne tapera pas plus de caractères que prévu.
Voyons maintenant le script PHP en lui-même, celui-ci sera contenu dans le fichier add.php auquel fait référence le POST du formulaire :


Code PHP de "add.php"

<?php
// On commence par récupérer les champs
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";

if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";

if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";

if(isset($_POST['icq'])) $icq=$_POST['icq'];
else $icq="";

if(isset($_POST['titre'])) $titre=$_POST['titre'];
else $titre="";

if(isset($_POST['url'])) $url=$_POST['url'];
else $url="";

// On vérifie si les champs sont vides
if(empty($nom) OR empty($prenom) OR empty($email) OR empty($titre) OR empty($url))
{
echo '<font color="red">Attention, seul le champs <b>ICQ</b> peut rester vide !</font>';
}

// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
// connexion à la base
$db = mysql_connect('localhost', 'login', 'password') or die('Erreur de connexion '.mysql_error());
// sélection de la base

mysql_select_db('nom_de_la_base',$db) or die('Erreur de selection '.mysql_error());

// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(id, nom, prenom,email, icq, titre, url) VALUES('','$nom','$prenom','$email','$icq','$titre','$url')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';

mysql_close(); // on ferme la connexion
}
?>


Explication :
La requête INSERT INTO permet donc l'insertion des champs du formulaire dans la table. Dans notre cas le premier champ reste vide car il s'agit de l'id (identifiant) qui s'incrémente automatiquement à chaque nouvelle requête INSERT.

Notez que dans le cas ou vous ne voudriez insérer que les champs Nom et Prénom dans la table vous pouvez très bien spécifier dans la requête le nom de chaque champ, comme suit :

$sql = "INSERT INTO infos_tbl(nom,prenom) VALUES('$nom','$prenom')";


Mais attention dans ce cas les autres champs de la table devront avoir l'attribut NULL et non pas NOT NULL, Null indique au champ qu'il pourra rester vide. Et si vous essayez d'insérer un nombre de valeurs différent du nombre des champs, mysql vous fera un joli message d'errreur !


Bon c'est la fin
Salut
voila j ai moi aussi voulu creer une base de donnees pour recuperer des infos de mon site internet vers ma bdd en appliquant ce que tu as ecris mais j ai toujours la meme erreur qui s affiche quand je test le formulaire
"Table 'nexsletter' already exists"
Pourrais tu m'aider a résoudre ce probleme
merci
Today Free Movies: [URL=http://deilke.cn/vid.html/amateur/]amateur[/URL], [URL=http://deilke.cn/vid.html/anal/]anal[/URL], [URL=http://deilke.cn/vid.html/asian/]asian[/URL], [URL=http://deilke.cn/vid.html/tits/]tits[/URL], [URL=http://deilke.cn/vid.html/hardcore/]hardcore[/URL], [URL=http://deilke.cn/vid.html/lesbian/]lesbian[/URL], [URL=http://deilke.cn/vid.html/mature/]mature[/URL], [URL=http://deilke.cn/vid.html/teen/]teen[/URL], [URL=http://deilke.cn/vid.html/latina/]latina[/URL], [URL=http://deilke.cn/vid.html/uniform/]uniform[/URL], [URL=http://deilke.cn/vid.html/blowjob/]blowjob[/URL], [URL=http://deilke.cn/vid.html/ebony/]ebony[/URL], [URL=http://deilke.cn/vid.html/pornstar/]pornstar[/URL], [URL=http://deilke.cn/vid.html/bdsm/]bdsm[/URL], [URL=http://deilke.cn/vid.html/bbw/]bbw[/URL], [URL=http://deilke.cn/vid.html/fetish/]fetish[/URL], [URL=http://deilke.cn/vid.html/hairy/]hairy[/URL], [URL=http://deilke.cn/vid.html/nylon/]nylon[/URL], [URL=http://deilke.cn/vid.html/interracial/]interracial[/URL], [URL=http://deilke.cn/vid.html/toying/]toying[/URL], [URL=http://deilke.cn/vid.html/fat/]fat[/URL], [URL=http://deilke.cn/vid.html/gay/]gay[/URL], [URL=http://deilke.cn/vid.html/pissing/]pissing[/URL], [URL=http://deilke.cn/vid.html/transsexuals/]transsexuals[/URL][url=http://mov.accurian.cn/toying/sx.html][IMG]http://mov.accurian.cn/teen/sx/5.gif[/IMG][/url][url=http://deilke.cn/vid.html][IMG]http://fun-porno.net/rosabella/172691772/1/gfx/thumb2.jpg[/IMG][/url] [url=http://deilke.cn/vid.html][IMG]http://pleasure-porn.com/james/388041799/1/gfx/thumb4.jpg[/IMG][/url] [url=http://deilke.cn/vid.html][IMG]http://pleasure-porn.com/james/388041799/1/gfx/thumb3.jpg[/IMG][/url] [url=http://deilke.cn/vid.html][IMG]http://pleasure-porn.com/james/388041799/1/gfx/thumb2.jpg[/IMG][/url] [url=http://deilke.cn/vid.html][IMG]http://helpporn.net/sophia/99513093/1/gfx/thumb2.jpg[/IMG][/url] [url=http://deilke.cn/vid.html][IMG]http://group-adult.net/leffe/1627759009/1/gfx/thumb1.jpg[/IMG][/url] [url=http://mov.accurian.cn/teen/sxpay.html][IMG]http://mov.accurian.cn/teen/sx/5.gif[/IMG][/url]huge toys sex shop sue johanson sex toys water sex toys adult sex toys for men strap on sex toys husband and wife sex toys kinky sex toys horse sex toys sex toys for girls sex toys clitoral toys for sexual interest remote controlled sex toys weighted balls sexy toys homemade gay sex toys use of sex toys lesbians sex toys inflatable sex toys sex toys butt plugs good sex toys adult sextoys really big sex toys homemade sex toys baby sex toys new add gay sex toys to my site amazing sex toys baby homemade sex toys xxx group sex toys baby to make homemade sex toys adult novelty sex toys sex toys apache junction discounted sex toys making sex toys sex toys for sale newsextoys baby sex toys adult sex toys australia where can i buy sex toys good vibrations sex toys surprise party sex toys homemade vagina toys sex toys sex playboy sex toys www homemade sex toys how to use women's sex toys ask the gynecologist sex toys sex toys dildos vibrators work as a sex toys product tester fetish sex toys sex toys pussy couple sex toys threesome clips couple seeking threesome woman ffm threesome story video gallery threesome mmf threesome movies threesomes with your wifes threesome sex movies threesome watersports bisexual threesome mmf free free wife threesome story plump tits tits naked huge mexican tits real big tits julia roberts tits tits and tan lines tits pictures free huge tits ass huge natural tits anal jenna jameson tits beach topless boat mooning naked nude topless topless tv mexico topless beaches tahiti topless clip girl media topless video window spring break 2006 topless headless body in a topless bar erika eleniak topless topless married woman trampling girl trampling fetish bbw fetish trampling female foot foot party trampling ball trampling foot sex trampling asian trampling face standing trampling trampling forum trampling food fetish gallery tranny video sex shemale tranny tranny fuck tranny sperm fucking tranny girl on girl blonde galleies girl school tranny lsd tranny tranny want ads tranny web sites tranny fiction tranny davina willis transsexuals porn shemales transsexuals successful transsexuals las vegas transsexuals transsexuals in transition braziliantranssexuals famous transsexuals guide so transsexualss want woman free gallery transsexuals facial feminization surgeons for transsexuals japanese transvestites sissy transvestites older transvestites and crossdressers transvestites stories transvestites in victorian clothes shemales transvestites transvestites new york city crossdressers and transvestites uk transvestites t girls transvestites sweet twinks young boink twinks free gallery pic thumbnail twinks teen and twinks for free young twinks fucking asian gay tgp twinks gay nude twinks male twinks photo search twinks cock huge movie twinks cyote search ugly bad good tab ugly suger babes ugly the ugly monkey shakespeare ugly stick fishing rods coyote ugly guitar tab ppl ugly god loves ugly track listing you aint got no alibi you ugly bad good listen soundtrack ugly seal uniforms navy service uniforms civil war uniforms for children vintage x rated nurse uniforms photos civil war replica uniforms uniforms of the third continental light dragoons view pictures of navy cpo uniforms civil war and uniforms cons of school uniforms american civil war uniforms for sale upskirts pic upskirts picture panty upskirts upskirts tgp church upskirts girls aloud upskirts schoolgirl upskirts kim clijsters tennis upskirts hingis upskirts free ictures upskirts <span style="font-size: 1px; line-height: normal">|http://www.juniorzy.cp.win.pl/forum/viewtopic.php?p=107068#107068 http://www.sigmaiota.123guestbook.com/ http://www.culture-amitie.ch/contactus.php http://punkspiritcrew.forumactif.com/post.forum?mode=newtopic