murrigane
Messages postés88Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention19 mai 2006
-
5 mai 2006 à 08:51
murrigane
Messages postés88Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention19 mai 2006
-
5 mai 2006 à 13:18
Bonjour,
Je suis en train de developper une boutique en ligne, tout mon processus est mis en place et jusqu'à la validation de la commade tout est ok.
Mon souci est que je voudrais générer des numéros de commandes d'au moins 6 caractères et si possible alphanumérique, mais la méthode me manque, je vois ce que je veux faire mais j'ai du mal à voir par où commencer. Dans la majeur partie des forums ou codes que j'ai consulté il n'y avait rien de spécifier à ce sujet, tout le monde se bornait à mettre en autoincrement le numero de la commande.
Mais j'aimerai faire un truc "bien" voir qui reprenne la suite des numéros de comandes qu'il y a sur la boutique du site déjà existente pour pas qu'il y ait de creux pour la compta. Les numeros sur l'ancienne boutique sont Alpha numérique avec au moins 6 caractères.
cs_spyro666
Messages postés137Date d'inscriptionlundi 10 janvier 2005StatutMembreDernière intervention28 août 2007 5 mai 2006 à 12:03
Oups, j'ai oublier de commenter ^^'
Bon je t'explique :
//-----------------------
$chaine = "AA999999";//ceci est une attribution de variable fait au bol.Tu peux très bien aussi affecter une valeur que tu a pris depuis une base MySQL.
//----------------------D'abord j'extrait le code ASCII des deux lettre du début pour pouvoir les "incrémenter" si il le faut
les numéros de commandes vont se suivre sans être exactement à la suite et si tu veux faire des numéro de commandes plus grand que 6 (genre 8), il te suffit d'enlever dans la dernière ligne le substr (...).
Ca fonctionne jusqu'a 67M de commandes, je pense que ça devrait suffir pour le premier mois ^^' Sinon je peux encore étendre le nombre de facture d'un facteur 26
murrigane
Messages postés88Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention19 mai 2006 5 mai 2006 à 12:09
Ah oui merci, ca va mieux !
Donc en définitive, en reprennant ce que tu as fait, je n'aurais qu'a récupérer le dernier numéro de commande dans la table mysql et je l'attribut à la variable $chaine qui ensuite est testée :
1- Au niveau des lettres de début
2-au niveau du numéro 000000
Ensuite, si j'ai tout suivi, si la lettre est a Z et que le numero est à 999999, ca me passe le truc en suivant et la prochaine commande aura le numéro :
AB000001
J'ai bien tout compris ?
Encore merci pour ton code, j'ai mal à la tête c'est normal ??
cs_spyro666
Messages postés137Date d'inscriptionlundi 10 janvier 2005StatutMembreDernière intervention28 août 2007 5 mai 2006 à 12:16
C'est presque ça. En fait d'abord je teste la valeur XXXXXX pour savoir si je dois ou non incrémenter la lettre, si c'est le cas je le fais et je regarde que le code ascii ainsi obtenu n'est pas plus grand que le code ascii de Z (soit 90). Si il est plus grand j'incrémente la 2e lettre et je définit le code ascii de la première à 65 (soit la valeur de A).
Donc si le numéro précédent est AA999999 le suivant sera AB000001, si le numéro est AZ999999 le suivant est BA000000.