[PHP SQL] Insert into

Résolu/Fermé
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 - 9 déc. 2009 à 09:48
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 9 déc. 2009 à 16:07
Bonjour alors ça c'est un problème incroyable :
je fait un insert into dans ma page et je l'affiche, ça m'affiche ceci:
insert into Impression values('20091201046','1','0','0')

et lorsque je vais dans ma table fenetre j'ai ceci:
('2147483647','1','0','0')

donc c'est de ja pas le bon numéro et du coup lorsque j'insére quelque chose d'autre, il me dit que la cles est dupliqué car il veut toujours mettre ce numéro.

Voici le code

$numbon=$_POST['numbon'];

$insert="insert into Impression values('".$numbon."','".$edition."','".$cb."','".$autre."')";
echo "insert : ".$insert."<br>";
mysql_query($insert) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

On est d'accord c'est impossible mon histoire....
Merci de votre aide
A voir également:

12 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 déc. 2009 à 10:53
as tu mis une cle primaire a ta table

perso je mets toujours le premier champ

id (ou num) en INT cle primaire autoincrement

rajoutes les en plus de tes autres champs

et ta requette devient donc:

$insert="insert into Impression values('','".$numbon."','".$edition."','".$cb."','".$autre."')"; 


premiere valeur vide, mysql se charge de l'incrementer
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
9 déc. 2009 à 11:03
ok merci j'ai recréer un champs idImpression qui s'increment et qui est ma clés.
Mais le pb est toujours le même
insert into Impression values('','20091201001','1','1','1')
et dans ma base
4 ,2147483647,1,1,1

voici le code
$numerocommnade=$_GET['cmd'];
echo $numerocommnade."<br>";

$insertionbss="insert into Impression values('','".$numerocommnade."','1','1','1')";
echo $insertionbss;
$requete=mysql_query($insertionbss) or die('Erreur SQL'.mysql_error());

mais je fait par exemple :
$numerocommnade=2;
la ça fonctionne correctement
je ne comprend rien
merci de ton aide
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
9 déc. 2009 à 11:52
je ne comprend rien
si je fait
$numerocommnade='2009120100';
$insertionbss="insert into Impression values('".$numerocommnade."','".$edition."','".$cb."','".$autre."')";
echo $insertionbss;
$requete=mysql_query($insertionbss) or die('Erreur SQL'.mysql_error());

il m'insére bien 2009120100 dans premiere colonne bdd

mais si je fait

$numerocommnade='20091201001';
$insertionbss="insert into Impression values('".$numerocommnade."','".$edition."','".$cb."','".$autre."')";
echo $insertionbss;
$requete=mysql_query($insertionbss) or die('Erreur SQL'.mysql_error());

il m'insére 2147483647 dans la première colone de ma bdd
Enfaite si $numerocommnade à un nombre de caractère < 10 c'est ok
et si $numerocommnade à un nombre de caractère > 10 il insére 2147483647

Alors j'ai vérifié ma table ma colone numCommande dans Impression est un int(100) donc ça ne vient pas de la
Autre idées???
Merci bcp
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 déc. 2009 à 13:04
si je fait
$numerocommnade='2009120100';
$insertionbss="insert into Impression values('".$numerocommnade."','".$edition."','".$cb."','".$autre."')";


il est passé ou ton premier champp dans Values(... ?

insertionbss="insert into Impression values('','".$numerocommnade."','".$edition."','".$cb."','".$autre."')"; 
0

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

Posez votre question
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
9 déc. 2009 à 13:31
ben j'ai essayé avec un id et sans id mais ça ne change rien le pb est toujours la.
merci de ton aide
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
9 déc. 2009 à 14:59
up?
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
9 déc. 2009 à 15:07
Première chose: les requêtes s'écrivent en majuscule.
Donc:
$numerocommnade='2009120100';
$insertionbss="INSERT INTO Impression VALUES('".$numerocommnade."','".$edition."','".$cb."','".$autre."')"; 

Ensuite, mais je ne sais pas si dans la finalité ça change grand chose, je met toujours les guillements à l'inverse de toi:
$numerocommnade='2009120100';
$insertionbss='INSERT INTO Impression VALUES("'.$numerocommnade.'","'.$edition.'","'.$cb.'","'.$autre.'")';

Pour finir, si tu met un colonne id en premier avec un auto_increment, il faut le rajouter avec un champ vide dans ta requête et donc:
$numerocommnade='2009120100';
$insertionbss='INSERT INTO Impression VALUES("", "'.$numerocommnade.'", "'.$edition.'", "'.$cb.'", "'.$autre.'")';
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
9 déc. 2009 à 15:20
Merci bcp de votre aide mais le probleme est toujours le même
voici mon code

<? session_start();
include('../fonction/connect.php');

$numerocommnade='20091201001';
$edition='0';
$cb='0';
$autre='0';
$insertion='INSERT INTO Impression VALUES("", "'.$numerocommnade.'", "'.$edition.'", "'.$cb.'", "'.$autre.'")';
$requete=mysql_query($insertion) or die('Erreur SQL'.mysql_error());
?>

voici ma table:
CREATE TABLE IF NOT EXISTS `Impression` (
`idImpression` int(10) NOT NULL auto_increment,
`NumCmd` int(100) NOT NULL,
`Edition` int(2) NOT NULL,
`CB` int(2) NOT NULL,
`Autres` int(2) NOT NULL,
PRIMARY KEY (`idImpression`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

et le contenu de ma table
(1, 2147483647, 0, 0, 0)

je ne comprend pas....
Merci
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
9 déc. 2009 à 15:37
Remplace:
$requete=mysql_query($insertion) or die('Erreur SQL'.mysql_error());

par:
mysql_query($insertion) or die('Erreur SQL'.mysql_error()); 


Mais sinon quelle est la nature du problème ?
J'ai pas tout suivi et il faudrait que tu précises au passage ce que change ou non les changements qu'on te fait faire.
Hésite pas à rajouter un
echo $insertion;

pour voir comment réagit ta requête et ce qui est traité par le serveur.
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
9 déc. 2009 à 15:52
Ok ok toujours la même chose

<? session_start();
include('../fonction/connect.php');

$numerocommnade='20091201001';
$edition='0';
$cb='0';
$autre='0';
$insertion='INSERT INTO Impression VALUES("", "'.$numerocommnade.'", "'.$edition.'", "'.$cb.'", "'.$autre.'")';
echo $insertion;
mysql_query($insertion) or die('Erreur SQL'.mysql_error());
?>

echo $insertion affiche :
INSERT INTO Impression VALUES("", "20091201001", "0", "0", "0")

mais dans ma base il y a
(2, 2147483647, 0, 0, 0);

c'est un truc impossible
si par exemple je met
$numerocommnade='2009120100'; //j'enlève un chiffre ou plus
=> la ça fonctionne le nombre inscrit est bien le nombre qui va aller dans ma bdd
mais si je met
$numerocommnade='20091201005';// avec un autre chiffre à la fin ou en ajoutant
=>le nombre inscrit n'ira pas dans la bdd, mais c'est ce nombre 2147483647 qui ira pourtant dans le insert into c'est bien le chiffre de $numerocommnade qui apparait

Je te dit c'est incomprehensible

enfin merci bcp de ton aide
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
9 déc. 2009 à 16:01
Logique.

int (accepte des nombres de -2147483648 à +2147483647)

L'explication est là.

Passe la colonne de INT à BIGINT.

0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
9 déc. 2009 à 16:05
OLLALALALALALALALALALALAL
quelle merde
enfin en tout cas
MERCI MERCI MERCI
j'aurais jamais trouvé
MERCI BCP

bonne journée
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
9 déc. 2009 à 16:07
Je me suis souvenu que INT était limité en taille sinon j'aurai pas trouvé non plus. :p
0