compteur avec incrementation auto

compteur avec incrementation auto - PHP - Programmation

Marsh Posté le 10-09-2004 à 17:19:43    

Voila je voudrai faire des enregistrements dans la base, je pourrai faire un autoincrement mais bon là j'ai pas fait !
je veux le faire avec mon programme PHP
jusque là c assez facile
mais ça se complique quand je veux que mes nombres soient sur plusieur chiffres, je veux que ma suite de nombres soient sous la forme :
 
0000001
0000002
0000003
[...]
0000010
0000011
0000012
[...]
0000110
0000111
 
... etc etc etc
 
ya t il une fonction qui fait ça ?
parceque un integer du genre
$int=0000001;
il enregistre  
$int=1;
alors ça va pas !

Reply

Marsh Posté le 10-09-2004 à 17:19:43   

Reply

Marsh Posté le 10-09-2004 à 17:35:19    

freed102 a écrit :

Voila je voudrai faire des enregistrements dans la base, je pourrai faire un autoincrement mais bon là j'ai pas fait !
je veux le faire avec mon programme PHP
jusque là c assez facile
mais ça se complique quand je veux que mes nombres soient sur plusieur chiffres, je veux que ma suite de nombres soient sous la forme :
 
0000001
0000002
0000003
[...]
0000010
0000011
0000012
[...]
0000110
0000111
 
... etc etc etc
 
ya t il une fonction qui fait ça ?
parceque un integer du genre
$int=0000001;
il enregistre  
$int=1;
alors ça va pas !


 
on appelle ça le formatage de nombre... Voir printf et sprintf dans la doc. Pour le stockage, suffit de stocker ça comme chaine...


---------------
Expert en expertises
Reply

Marsh Posté le 10-09-2004 à 17:58:23    

yess ça marche !
mon script me parait un peu tordu pour les tests avant la creation du numero mais bon... je pense que ça doit marcher
 
voici le shemas :
 

Code :
  1. //Cherche le numero de facture le plus grand
  2. $sqlfacture = "SELECT MAX(facture) FROM devis1";
  3. $res=mysql_query($sqlfacture);
  4. $resfacture=mysql_result($res,'facture');
  5. //cherche le nombre de factures enregistrées
  6. $numfactures=mysql_num_rows($res);
  7. //cherche si la commande enregistrée porte deja un numero de facture
  8. $req1="SELECT facture FROM devis1 WHERE devisnum='$_SESSION[devisnum]'";
  9. $res1=mysql_query($req1);
  10. $facture_exists=mysql_result($res1,'facture');
  11. //si le nombre de facture est plus petit que 1 -> créé le premier numero de facture
  12. if($numfactures<1)
  13. {
  14. $facture=sprintf("%010s\n", 1);
  15. }
  16. //si une facture existe pour un enregristrement -> garde l'ancien numéro
  17. elseif(!empty($facture_exists))
  18. {
  19. $facture=$facture_exists;
  20. }
  21. //si il n'y a pas de facture pour cet enregistrement ajoute 1 au numéro de facture le plus grand  
  22. else
  23. {
  24. $facture=sprintf("%010s\n",  $resfacture+1);
  25. }


Message édité par freed102 le 10-09-2004 à 18:10:27
Reply

Marsh Posté le 10-09-2004 à 18:07:31    

Hermes le Messager a écrit :

on appelle ça le formatage de nombre... Voir printf et sprintf dans la doc. Pour le stockage, suffit de stocker ça comme chaine...


 
Merci ! :jap: :jap: :jap: :jap:


Message édité par freed102 le 10-09-2004 à 18:07:44
Reply

Marsh Posté le 10-09-2004 à 18:51:21    


 
De rien, et continue à poster la solution comme tu le fais. C'est très bien et ça pourra servir à d'autres. ;)


---------------
Expert en expertises
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed