begin process at 2012 05 28 08:40:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

E-commerce et n° de commande


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

E-commerce et n° de commande

vendredi 5 mai 2006 à 08:51:00 | E-commerce et n° de commande

murrigane

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.

Si quelqu'un à une méthode à me proposer,

Merci d'avance !
vendredi 5 mai 2006 à 09:14:32 | Re : E-commerce et n° de commande

spyro666

Fait un numéro de commande avec time() et/ou microtime().

Ex :

$n_com = substr(time(),3) . substr(micrtotime(),0,10);

$n_com = substr (hexdec($n_com),2);

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 (...).

Voilà

Spyro666 contre le 555
vendredi 5 mai 2006 à 09:25:28 | Re : E-commerce et n° de commande

murrigane

Merci Spyro666, mais j'ai deux petites questions pour ta méthode :

1 - Il me génère un numéro comme celui ci :

49944727581E+018

Comment enlever le +018 ?

2 - D'autre par je voudrais par exemple des numéro qui se suivent quand même genre (sur 8 caractères c'est mieux je pense) :

commande 1 : AA000001

commande 2 : AA000002

Ensuite quand il arrive au numéro AA999999, la commande suivante sera : AB000001

Voila.... J'espère que mon explication est clair, parce que je suis pas encore bien réveillée !

vendredi 5 mai 2006 à 11:27:13 | Re : E-commerce et n° de commande

spyro666

C'est pour cette raison que j'ai mis le substr(time(), 3), pour réduire la chaine de 3 caractère afin d'éviter ce problème.

Bon comme tu me le présente la c'est un comptage deci-hexadecimal... C'est un peu complexe mais je pense que je peux te programmer ça.

Spyro666 contre le 555
vendredi 5 mai 2006 à 11:30:55 | Re : E-commerce et n° de commande

murrigane

Merci c'est sympa de ta part !

Par contre si ca t'ennui pas, je te poserai surement d'autre questions par la suite, pour que je comprenne comment ca fonctionne

Encore merci, c'est un truc que j'ai encore pas fait et je voyais pas du tout par quel bout le prendre ! ^^
vendredi 5 mai 2006 à 11:47:51 | Re : E-commerce et n° de commande

spyro666

Voilà ce que ça donne :
<?php
    $chaine = "AA999999";
   
    $debut1 = ord(substr($chaine,0,1));
    $debut2 = ord(substr($chaine,1,1));

    if(substr($chaine,2)+1 > 999999) {
       
        $debut2 ++;
       
        if($debut2 > 90) {
           
            $debut2 = 65;
            $debut1 ++;
           
        }
        $chaine = chr($debut1).chr($debut2)."000000";
       
    }else {
       
        $chaine = substr($chaine,2);
       
        $chaine ++;
       
        $chaine = chr($debut1).chr($debut2).sprintf("%06d",$chaine);
       
    }
    echo $chaine;
?>

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

Spyro666 contre le 555
vendredi 5 mai 2006 à 11:54:24 | Re : E-commerce et n° de commande

murrigane

Oh Lord, Oh my God !

J'pige rien ...
vendredi 5 mai 2006 à 12:03:55 | Re : E-commerce et n° de commande

spyro666

Réponse acceptée !
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
   
    $debut1 = ord(substr($chaine,0,1));
    $debut2 = ord(substr($chaine,1,1));
   
    //----------------------Je teste si la section xxxxxx + 1 est plus grande que 999999

    if(substr($chaine,2)+1 > 999999) {
        //-----------c'est le cas donc j' "incremente" ma lettre    
        $debut2 ++;

        //-----------Je teste la valeur de mon code ASCII
        if($debut2 > 90) {
           
            //--------Plus grand que 90 donc on a passe Z
            $debut2 = 65; //On attribue la valeur de A
            $debut1 ++; //On incrémente la lettre suivante
           
        }
        //-----------On refait la chaine du numéro de commande 
        $chaine = chr($debut1).chr($debut2)."000000";
       
    }else {
        //-----------Sinon on se content d'incrémenter le chiffre de fin
        $chaine = substr($chaine,2);
       
        $chaine ++;
       
        $chaine = chr($debut1).chr($debut2).sprintf("%06d",$chaine);
       
    }
    //-------------Et on affiche notre numéro de commande
    echo $chaine;

Spyro666 contre le 555
vendredi 5 mai 2006 à 12:09:11 | Re : E-commerce et n° de commande

murrigane

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 ??
vendredi 5 mai 2006 à 12:16:29 | Re : E-commerce et n° de commande

spyro666

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.

Spyro666 contre le 555

1 2

Cette discussion est classée dans : commande, caractères, numéros, commerce, boutique


Répondre à ce message

Sujets en rapport avec ce message

Principe d'une boutique en ligne en PHP ??? [ par Zou ] Je suis actuellement étudiant, et je dois dans le cadre de mes études mettre en place une sorte de boutique en ligne, une sorte de caddie virtuel quoi Limite de caractères?? [ par JosueClement ] Lorsque on utilise un formulaire en HTML, y a-t-il une limite d'envoi de caractères Merci d'avance...Josué Clémentjosue-clement@bluewin.ch Php et l'evois de mail [ par karushi ] Bonjour a tous et tout mes voeux pour cette nouvelle année.J' ai un petit problème...J'ai trouvé un script du genre e-commerce, je l'ai modifié et ada menu et chaines de caractères [ par ayor ] bien le bonjour à tous, je voulais juste poser 2 petites questions : - tout d'abord, sous phpmyadmin, est-il possible de créer des champs de text nombre de caractères dans un enregistrement [ par desrimaisd ] bonjour a tous,je voudrais avoir un petit renseignement, c'est tout bete je pense mais je sais pas du tout:combien de caractères peut on insérer dans mkdir et droits [ par elanspeech ] salut, dans ma page php, je fais la commande suivante : mkdir ("rep/", 0777); le repertoire est bien cree mais pas avec les bons droits.... j'obtiens quel hebergeur pour php commande mail() ?? [ par jymick ] Qui pourrait me renseigner des herbergeurs gratuits acceptant la fonction php commande mail() ? MerciJymick La commande FOREIGN KEY dans EasyPHP. [ par BRAUKRIS ] KrisLa commande FOREIGN KEY existe-elle sous la base de donnée EasyPHP?Si non, comment gérer les contrainte d'intégrité referencielle?MERCI D'avance.. 2 actions pour 1 socket [ par pouet89 ] J'aimerai donner une deuxieme commande à mon script lorsque le socket est ouvert, et que j'envoie les premieres donnéesVoici le script, il s'agit de s extraire chaîne caractères [ par eax ] salutj'ai un petit pb de traitement de chaines de caractères :j'ai une variable avec du contenu dedans (je ne sais pas ce qu'il y a exactement dedans


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,106 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales