Pourquoi je peux pas enregistrer un nombre de 12 chiffres

Résolu
msi79
Messages postés
501
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
7 juin 2022
- 4 sept. 2014 à 17:18
msi79
Messages postés
501
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
7 juin 2022
- 5 sept. 2014 à 15:53
Bonjour,
je veux enregistrer des nombres de 12 chiffres dans ma base de donnée .
j'en voie 1 000 000 000 et je vois 2147483647 dans la base de donnée au lieu de 1 000 000 000 .
dans la base de données aussi, impossible de changer en 1 000 000 000 .
quelqu'un pourrait me dire pourquoi ??

merci d'avance

8 réponses

jordane45
Messages postés
35765
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 juin 2022
358
4 sept. 2014 à 17:37
Bonjour,

L'explication de ton souci est.... comment dire... un peu flou.......

Enfin bon.. si j'ai bien compris :
Tu inserts dans un champ de ta BDD la valeur : 1 000 000 000
Et lorsque tu regarde ce champ (après l'insertion).. toi tu vois : 2147483647

Donc.. déjà.... Pourrais tu nous donner la structure de ta table et surtout, le TYPE de ton champ ??

Ensuite... l'insertion... tu la fais manuellement... ou bien c'est un script qui la fait ?
Si c'est un script... montre nous le code !!

NB : Pour poster du code sur le forum, n'oublie pas d'utiliser les balises de code !
Pour utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum : http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code




0
msi79
Messages postés
501
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
7 juin 2022
1
Modifié par msi79 le 4/09/2014 à 17:46
1. structure e ma table :


-- Structure de la table 'produits'
0
jordane45
Messages postés
35765
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 juin 2022
358
4 sept. 2014 à 17:51
Et... c'est QUEL champ qui est concerné par ton souci ??

Et .. c'est quel BOUT de code exactement qui y enregistre quelque chose ???

Tu pourrais peut être essayer de faire un petit effort de rédaction... cela faciliterait grandement nos échanges et augmenterait sensiblement ta chance d'obtenir une réponse à tes questions... !
0
msi79
Messages postés
501
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
7 juin 2022
1
4 sept. 2014 à 17:52
le champ ref
0
msi79
Messages postés
501
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
7 juin 2022
1
4 sept. 2014 à 17:53
$sql="INSERT INTO produits(id,article,pa,pv,ref,id_pros) VALUES('','".$nom_pros."','".$pa."','".$pv."','".$ref."','".$id_pros."')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
0
jordane45
Messages postés
35765
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 juin 2022
358
Modifié par jordane45 le 4/09/2014 à 17:59
... Bon... vu que tu nous as donné la structure de la talbe...produits
je suppose que le code PHP qui y insère les données est donc celui là :
$sql="INSERT INTO produits(id,article,pa,pv,ref,id_pros) 
VALUES('','".$nom_pros."','".$pa."','".$pv."','".$ref."','".$id_pros."')";


As tu fais un ECHO de ta variable SQL pour savoir si les valeurs qui s'y trouvent sont bonnes ??
$sql="INSERT INTO produits(id,article,pa,pv,ref,id_pros) 
VALUES('','".$nom_pros."','".$pa."','".$pv."','".$ref."','".$id_pros."')";

echo "<br><b> La requête est :</b> <br>".$sql."<br>";


...ça donne quoi ??

NB : Bien entendu... le nombre " 1 000 000 000" que tu essaies d'insérer dans la BDD... tu l'y met.. SANS les espaces.. ??!!
0
jordane45
Messages postés
35765
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 juin 2022
358
Modifié par jordane45 le 4/09/2014 à 18:08
Autre question....
As tu testé ta requête en DIRECT dans ta BDD ??

Par exemple...si tu y fais :
INSERT INTO produits ('id', 'article', 'pa', 'pv', 'ref', 'date', 'id_pros') VALUES
(16, 'DISK DUR', 500, 250, '100000000000', '', 1); 

Qu'est ce que ça donne ???
0
msi79
Messages postés
501
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
7 juin 2022
1
4 sept. 2014 à 18:01
echo "<br><b> La requête est :</b> <br>".$sql."<br>";
donne:
INSERT INTO produits(id,article,pa,pv,ref,id_pros) VALUES('','CLEF USB','8000','50','100000000000','2')

mais dans la base de données j'ai plutot :
2147483647 au lieu de 100000000000
0
msi79
Messages postés
501
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
7 juin 2022
1
4 sept. 2014 à 18:03
voici l'erreur que je reçois de la BDD:

#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 ''produits' ('id', 'article', 'pa', 'pv', 'ref', 'date', 'id_pros') VALUES (16, '' at line 1
0
jordane45
Messages postés
35765
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 juin 2022
358
4 sept. 2014 à 18:07
Tu obtiens ce message d'erreur quand ?
Avec quelle requête ?

=> Avec celle générée par ton code php ??
INSERT INTO produits(id,article,pa,pv,ref,id_pros) VALUES('','CLEF USB','8000','50','100000000000','2') 


Ou celle issue de ton DUMP :
INSERT INTO produits ('id', 'article', 'pa', 'pv', 'ref', 'date', 'id_pros') VALUES
(16, 'DISK DUR', 500, 250, '100000000000', '', 1);
0
jordane45
Messages postés
35765
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 juin 2022
358
4 sept. 2014 à 18:14
Et.... je te le répète encore une fois .....

TU AS UN ID AUTOINCREMENTE.... POURQUOI VEUX TU TOUJOURS LE RENSEIGNER LES DE TES INSERT.... alors que c'est ta BDD qui gère ça toute seule comme une grande ...??????

Donc.. ta requête (dans ton code PHP) devrait être :
INSERT INTO produits(article,pa,pv,ref,id_pros)
 VALUES('CLEF USB','8000','50','100000000000','2')


Et au passage.... tu as 7 Champs dans ta Table...(en comptant l' ID )... et je n'en voie que 5 dans ta requête .....
Sachant que TOUS tes champs sont en : NOT NULL, .....

Donc... il t'en manque un .. non ?
Je pense que c'est LA DATE .. qui manque...

INSERT INTO produits ('article', 'pa', 'pv', 'ref', 'date', 'id_pros')
 VALUES('CLEF USB','8000','50','100000000000','LA DATE','2')


Au passage.... une date dans une BDD... c'est un type DATE ou DATETIME ou TIMESTAMP... ce n'est pas un VARCHAR...
Il vaut mieux que tu modifies cela... car sinon tu risque d'avoir des soucis si tu souhaites faire des requêtes sur ces dates.....
0

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

Posez votre question
msi79
Messages postés
501
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
7 juin 2022
1
4 sept. 2014 à 18:13
1. avec :
INSERT INTO produits(id,article,pa,pv,ref,id_pros) VALUES('','CLEF USB','8000','50','100000000000','2')

il y a insertion


mais avec :
INSERT INTO produits ('id', 'article', 'pa', 'pv', 'ref', 'date', 'id_pros') VALUES
(16, 'DISK DUR', 500, 250, '100000000000', '', 1);
erreur
0
jordane45
Messages postés
35765
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 juin 2022
358
4 sept. 2014 à 18:16
Je pense avoir compris....

Il semble que tu ais DEJA un ID ... et donc finalement... tu ne veux pas AJOUTER une ligne... tu veux la MODIFIER .. non ???

Le souci vient du fait que l'ID ( qui est normalement auto-incrémenté) existe surement déjà... hors... une PRIMARY KEY ne peut exister en double...

Dans ce cas.. si c'est une Mise à jour que tu veux faire... ce n'est pas un INSERT que tu dois faire ... mais un UPDATE.
0
msi79
Messages postés
501
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
7 juin 2022
1
4 sept. 2014 à 18:20
non ce n'est pas une mise a jour que je veux faire. je veux que chaque article ai une reference(ref) qui sera un nombre de 12 chiffre commençant par 100 000 000 000
0
jordane45
Messages postés
35765
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 juin 2022
358
4 sept. 2014 à 18:37
Donc... ne METS PAS l'id dans ta requête !
0
msi79
Messages postés
501
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
7 juin 2022
1
4 sept. 2014 à 18:41
est ce que le probleme se trouve au niveau du champs ID ?? puisceque refne represente pas le champ ID
0
jordane45
Messages postés
35765
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 juin 2022
358
5 sept. 2014 à 11:07
Je reprend....

Tu fais des requêtes du genre :
INSERT INTO produits ('id', 'article', 'pa', 'pv', 'ref', 'date', 'id_pros') 

... ID ... est un champ AUTO INCREMENTE .... donc... tu n'as PAS à y toucher !

Il vaut donc mieux écrire :
INSERT INTO produits ( 'article', 'pa', 'pv', 'ref', 'date', 'id_pros') 


Et bien entendu... mettre les VALUES en fonction des champs dans lesquels tu fais l' INSERT
VALUES
( 'DISK DUR', 500, 250, '100000000000', '', 1);

En considérant que là...
Article = DISK DUR
pa = 500
pv = 250
ref = "100000000000"
date = ''
et id_pros = 1


NB : Comme je te l'ai souligné auparavant... pense qu'une date ne doit pas être de type VARCHAR dans ta BDD mais qu'il existe des types exprès ( DATE, DATETIME, TIMESTAMP)... Donc... pense à modifier ta BDD pour les utiliser.... !
0
msi79
Messages postés
501
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
7 juin 2022
1
5 sept. 2014 à 15:53
OK MERCI JE VAIS TESTER
0