Problème pour creer code commande
delavega470
Messages postés
316
Statut
Membre
-
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...