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;
}
?>
1 réponse
-
Bonjour,
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.