Problème pour creer code commande
delavega470
Messages postés
298
Date d'inscription
Statut
Membre
Dernière intervention
-
Zé -
Zé -
Bonjour, je veux creer un code commande exemple com_annee_mois-001 ,com_annee_mois-002. le souci c'est que apres com_annee_mois-001 celui qui vient me donne com_annee_mois-00 ou lieu de com_annee_mois-002.
je peux avoir un coup de main svp ?
je peux avoir un coup de main svp ?
<?php function reference ($ref) { include 'codes/bdcon.php'; $req = 'SELECT code_com from commande where id_cli='.$_SESSION['id_cli'].' '; $envoie = $bd->query($req); $ref = $envoie->fetch(); if($ref=="") { $ref='COM'.date('ym').'-'.'001'; } else { $an1=substr($ref,2,4); $num=substr($ref,7,3); $an2=date('ym'); if($an1==$an2) { $num++; } if($num<10) { $num='00'.$num; } elseif($num<100) { $num='0'.$num; } $ref='COM'.$an2.'-'.$num; } return $ref; } ?>
A voir également:
- Problème pour creer code commande
- Code ascii - Guide
- Invite de commande - Guide
- Créer un lien pour partager des photos - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
1 réponse
Bonjour,
Rien qu'en faisant des ECHO dans ton code.. tu aurais pu trouver le souci par toi même ...
Quoi qu'il en soit.. voici ton code corrigé et amélioré !
NB : On n'utilise pas les variables de SESSION, POST , GET dans des fonctions ! On les récupère PROPREMENT AVANT .. puis on les passe en paramètres de ces fonctions.
NB² : Tu envoyais en paramètre de ta fonction une variable $ref... alors que tu allais ensuite la récupérer via une requête... attention à te relire pour ne pas faire n'importe quoi.
Rien qu'en faisant des ECHO dans ton code.. tu aurais pu trouver le souci par toi même ...
echo "<br>".$an1; echo "<br>".$an2; echo "<br>".$num;
Quoi qu'il en soit.. voici ton code corrigé et amélioré !
$id_cli = !empty($_SESSION['id_cli']) ? $_SESSION['id_cli'] : NULL; function get_code_com_by_id_cli($id){ require_once 'codes/bdcon.php'; $req = "SELECT code_com from commande where id_cli='$id_cli'"; // TOUJOURS mais alors.. TOUJOURS ... mettre tes requêtes (en PDO) dans des blocs TRY/CATCH !!!!! try{ $envoie = $bd->query($req); $result = $envoie->fetch(); }catch(Exception $e){ echo "<br>Erreur ! " . $e->getMessage(); } return $result; } function reference ($id_cli){ $ref = get_code_com_by_id_cli($id); $dateYM = date('ym'); if($ref =="") { $ref='COM'.$dateYM.'-'.'001'; } else{ $an1=substr($ref,3,4); $num=substr($ref,8,3); $an2=$dateYM; if($an1==$an2) { $num++; } if($num<10) { $num='00'.$num; } elseif($num<100) { $num='0'.$num; } $ref='COM'.$an2.'-'.$num; } return $ref; } echo "<br><hr>Reference = ".reference(1);
NB : On n'utilise pas les variables de SESSION, POST , GET dans des fonctions ! On les récupère PROPREMENT AVANT .. puis on les passe en paramètres de ces fonctions.
NB² : Tu envoyais en paramètre de ta fonction une variable $ref... alors que tu allais ensuite la récupérer via une requête... attention à te relire pour ne pas faire n'importe quoi.
Zé
Pour le compteur, utiliser http://php.net/manual/fr/function.str-pad.php serait judicieux...