Numero commadne aléatoire en fonction de la date

Résolu
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 - 31 oct. 2008 à 12:07
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 31 oct. 2008 à 14:35
Bonjour,

Je voudrais, quand mes clients commandent sur mon site, leur attribuer un numero de commande..
Je suis passé par le numéro aléatoire avec une chaine de 10 caracteres de 0 à 9. Mon probleme est que ça enregistre bien dans la base, une fois que le client s'est loggué et donc accède à la page modes_paiement.php,
Mais dès qu'il choisi son mode de paiement, celui ci est sensé metter à jour par un UPDATE la base et remplacer la valeur NULL de la colonne paiement par le mdoe de paiement choisi, or ça créé un autre numéro de commande aléatoire et donc 2 lignes, avec les meme infos sauf ce fameux numéro de commande.
Je me suis alors dit que c'etait une méthode simple mais pas fiable, donc je voudrais que mon numéro soit sous forme JJMMAA$LOGIN$numéro-incrémentable
Ex:
S'il a passé sa commande le 31 octobre 2008, que son login est GOMEZ et que c'est sa premeire commande : 311008GOMEZ1

Pouvez vous em guider dans la création de la fonction de ce numéro de commande svp ? car je en sais pas du tout comment m'y prendre.

Merci.

5 réponses

nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
31 oct. 2008 à 14:35
de rien.

a++

Si la réponse vous convient, pensez : Réponse acceptée !
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
31 oct. 2008 à 12:57
Salut,

function createNum($pseudo, $numero) {
      $numCommande = time() . $this.pseudo . ($this.numero + 1);
}

Cette fonction prend en argument le pseudo du membre et le nombre de commande déja passé !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
31 oct. 2008 à 14:15
Bonjour,

Merci pour la réponse,
j'ai remplacé $pseudo par $login car c'est comme ça que j'ai fais mon code, et pour l'ecrire dans am table, le code me donne ceci :
$numero=0

function createNum($login, $numCommande)
 {
      $numCommande = time() . $this.login . ($this.numero + 1);
}



$numcmde= "createNum()";
           $sql="update commande set REGLEMENT='$paiment' where NUMCMD='$numcmde' and LOGIN='$login' ";
           $res=odbc_exec($connect, $sql) or die($sql."
".odbc_error());

Mais ça ne marche pas, je crois avoir tout bien fais, non? (je débute)
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
31 oct. 2008 à 14:29
function createNum($login, $numero)
 {
      return time() . $this.login . ($this.numero + 1);
}


tu fais une requête pour récupèrer le login et le nombre de commande déjà faite ensuite tu utilise la fonction comme ceci :

$numCommande = createNum($variable_qui_contient_le_login, $variable_qui_contient_le_nombre_de_comande_déja_faite);

Les variables doivent contenir le pseudo et le nombre de commande déja faite, après il faudra rajouter 1 au nombre dans la base de donnée !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
31 oct. 2008 à 14:32
OK merci :)
0
Rejoignez-nous