Ma fonction crée renvoi la variable en double
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 :
Code:
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");
?> |
Ensuite la fonction Create_Ref($Type, $Name) ;
Code:
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 ;
} |
A noter que $ID est bien correcte, j'ai fait un echo pour vérifier.
Et enfin la fonction qui me renvoi la variable en double : LectureArticleID($ID);
Code:
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>" ;
}
} |
Le problème est ici, la valeur $ID est en double et je comprend pas comment et pourquoi :(
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.