Bonjour.
Je tente de coder une interface de creation/d'ajout de produit en inventaire.
A chaque ajout d'article, je veus qu'un script crée automatiquement un ID pour la base de donnée et qui servira en même temps pour imprimer le code barre.
Mais je bloque a un endroit, après mon formulaire il y a la page du 'submit' qui appelera plusieurs fonctions.
Dans l'ordre :
1er fonction : Create_Ref($Type, $Name);
cette fonction se trouve sur un autre fichier 'fonction.php' et permettra de crée cette fameuse ID.
dans cette même fonction j'y appel encore une autre fonction dans un autre fichier :
2e fonction : LectureArticleID($ID);
cette fonction se trouve dans un fichier 'fonction_connect.php' et permettra de voir si l'ID existe déjà dans la DB.
Mais c'est là que le problème surviens.
Par exemple dans Create_Ref($Type, $Name); je crée l'ID à la valeur '520620090000' mais dans la fonction LectureArticleID($ID); ça renvoi cette valeur mais en 2fois = '520620090000520620090000'.
Voila le 'submit' du formulaire :
Ensuite la fonction Create_Ref($Type, $Name) ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?php include ("../Kernel/admin.php") ; include ("../Kernel/fonction.php") ; $Name = $_POST['Name']; $Type = $_POST['Type']; $PRIX = $_POST['Prix']; $Date_Ajout = $_POST['Date']; $Nombre = $_POST['Nombre']; $R_ID = Create_Ref($Type, $Name) ; mysql_connect($Serveur, $Root, $Passwd)or die(mysql_error()); mysql_select_db($Article)or die(mysql_error()); $requete = "INSERT INTO produit VALUES('$R_ID','$Name','$Type','$PRIX','$Date_Ajout')"; $i = 0; //on définit la variable $i qui sera notre nombre que l'on incrémentera. Ici $i va commencer à 0 while($i < $Nombre) { mysql_query($requete)or die(mysql_error()); $i++; } Header ("Location:http://serveur:84/ajout/ok.php"); ?>
A noter que $ID est bien correcte, j'ai fait un echo pour vérifier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function Create_Ref($Type, $Name) { $Date = Date('mo'); $Fin = '0000'; $ID = "$Type$Name$Date$Fin"; $N_id = LectureArticleID($ID); return $ID ; }
Et enfin la fonction qui me renvoi la variable en double : LectureArticleID($ID);
Le problème est ici, la valeur $ID est en double et je comprend pas comment et pourquoi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function LectureArticleID($ID) { include ("admin.php") ; mysql_connect($Serveur, $Root, $Passwd)or die(mysql_error()); mysql_select_db($Article)or die(mysql_error()); $requete = "select * from produit where id = '$ID'"; $resultat = mysql_query($requete); while(list($Id) = mysql_fetch_row($resultat)) { $R_ID = "$Id"; echo "$R_ID<br>" ; } }
Pour la debug j'ai fait des // sur mon script d'auto-incrementation de l'ID.
Vous remarquerez que $Fin = 0000 et c'est cette variable que je voulais incrementer mais le truc c'est que $Fin++ = 1 après donc ça donne $ID =520620091 et donc ça foire mon incrementation alors que je veus $ID++ = 520620090001.
Pour le moment je me penche sur ce problème de variable et ensuite je reprend le taff sur ce fameux script d'auto-incrementation, je l'avais fait avec un 'while' mais la boucle qu'une fois c'est pour ça que j'ai mis la recherche d'ID dans la DB dans une fonction afin de l'appeler dans la boucle et éviter de faire des boucle dans des boucle etc...
Voila merci de votre aide d'avance.
Partager