Enregistrement base de données

Signaler
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
-
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
-
bonjour,
j'essaye d'ecrire quelques informations dans une base de données basé sur ce que l'internaute rentre sur le site (formulaire).
j'ecris une disaine d'information en base à la fois. ma requete sql est bonne et l'ecriture se passe correctement sauf que: il y a deux champs qui semble toujours les memes!! je m'explique:
voici mon code source:
$sql = "INSERT INTO eb_produits VALUES ('','$cat_id','$titre','$desc','$prix','$date_mel','$etat', '$date_exp', '$img', '', '', '$reg_id','$id_ville', '0', '0','0')";
        echo $sql;
        $t = $conn->exec($sql);
        

le echo $sql renvoi bien les champs tels qu'il faut les ecrire:
INSERT INTO eb_produits VALUES ('','5','vend polo en tres bon état CT OK','voiture pas cher','40000','14/09/2011 22:00','0', '14/11/2011', '140922452011_volant.jpg', '', '', '18','663', '0', '0','0')  

je vois donc bien que les champs reg_id et id_ville sont à 18 et 663 MAIS lorsque je regarde dans ma base de données, ils ont à 23 et 167...

j'ai beau chercher, je ne vois pas ce qui explique ça!!

une idée?

6 réponses

Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
INSERT INTO tatable(champ1,champ2) VALUES (valeur1,valeur2);

Les int ne doivent pas être entre guillemets ...

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
2
mmm... il me semble que matable(champ1, champ2) n'est pas obligatoire lorsqu'on renseigne tous les champs d'un table du moment qu'on respecte l'ordre...
je vais essayer de retirer les " pour voir ce que ça donne, mais j'y crois moyen :(

merci quand meme pour la reponse
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
2
donc retirer les guillemets ne change rien...
autre piste?
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Personne n'a jamais ce genre de surprises désagréables en précisant les noms des champs. De plus, ta requête serait bien plus simple à comprendre et portable (vers d'autres SGBD)

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
2
ok, j'ai essayé avec matable(champ1...) mais ca change rien!!
je m'arrache les cheveux sur ce probleme :(
je prend ma requete affichée avec echo, je l'execute directement dans phpmyadmin et ca fonctionne!! j'ai bien les bonnes valeurs sur mes deux champs!!

pourquoi diable ces champs prennent toujours les memes valeurs lorsque je les excutes avec php?
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
2
bon j'ai trouvé d'ou venait le problème... je le poste pour que ça serve à quelqu'un d'autre :)

en fait ca venait du fait que mon champ ville_id avait un type tinyINT et donc va de -128 à 127
comme mes id vont jusqu'à +4000, mysql stocke la valeur la plus grande (donc 127)...

voila

merci pour votre aide.