Enregistrement base de données

Karibot Messages postés 89 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 21 juin 2016 - 14 sept. 2011 à 22:03
Karibot Messages postés 89 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 21 juin 2016 - 15 sept. 2011 à 14:32
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

cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
14 sept. 2011 à 22:44
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
0
Karibot Messages postés 89 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 21 juin 2016 2
14 sept. 2011 à 23:04
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
0
Karibot Messages postés 89 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 21 juin 2016 2
14 sept. 2011 à 23:10
donc retirer les guillemets ne change rien...
autre piste?
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
14 sept. 2011 à 23:36
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
0

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

Posez votre question
Karibot Messages postés 89 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 21 juin 2016 2
15 sept. 2011 à 08:18
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?
0
Karibot Messages postés 89 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 21 juin 2016 2
15 sept. 2011 à 14:32
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.
0