Compteur qui ne marche pas

Résolu
bonjour à tous j'ai crée des dossiers et enregistré des commandes sous format pdf l'ennuis c'est que le doucement pdf je le veux sous cette forme com_1.pdf,com_2.pdf ainsi de suit, le numero ne compte pas pour le premier enregistrement j'ai bien cette forme com_1.pdf pour les autres toujours com_2.pdf voici le code quelqu'un peu me dire ou se trouve l'erreur et m'aider à le corriger
<?php
    $num = 1;
 $nom_dossier= $data['id_cli'];
$structure = 'commande/'.$nom_dossier.'/';
mkdir($structure,0777,true); 
$structure = 'commande/'.$nom_dossier.'/';
$chemin = ''.$structure.'com_'.$num.'.pdf';
  $file = 'com_'.$num.'.pdf';
  $file_url=''.$structure.''.$file.'';
$envoie = $bd->query('SELECT lib_com from commande WHERE lib_com = "'.$file.'" AND id_cli="'.$_SESSION['id_cli'].'"' );
$resultat=$envoie->fetch();
 if(!empty($resultat['lib_com']) )
 {
  $num_new = $num++;
  $file = 'com_'.$num_new.'.pdf';
  $envoie = $bd->prepare('INSERT INTO commande (date_com,id_cli,lib_com,url_file) VALUES(:date_com,:id_cli,:lib_com,:url_file)');
$resultat=$envoie->execute (array('date_com'=>$today,'id_cli'=>$_SESSION['id_cli'],'lib_com'=>$file,'url_file'=>$file_url));
$delete_panier= $bd->query("DELETE FROM panier WHERE cookie='".$cookie."'");
 } else { $num = 1; 
  $file = 'com_'.$num.'.pdf';
 $envoie = $bd->prepare('INSERT INTO commande (date_com,id_cli,lib_com,url_file) VALUES(:date_com,:id_cli,:lib_com,:url_file)');
 $resultat=$envoie->execute (array('date_com'=>$today,'id_cli'=>$_SESSION['id_cli'],'lib_com'=>$file,'url_file'=>$file_url));
 $delete_panier= $bd->query("DELETE FROM panier WHERE cookie='".$cookie."'");
}
?>

4 réponses

  1. Modérateur
    Commence par bien indenter ton code, pour mettre en évidence les blocs de code.
    Ensuite, essayes de mettre des "echo" pour voir comment ça se passe et débugger.

    J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
    En VB.NET pensez à activer "Option Explicit" et "Option Strict"
    0
    1. $num_new egale toujours 2 et je ne sais pas pourquoi
      0
      1. Contributeur Ambassadeur
        cela me semble normal: tu n'as prévu que 1 ou 2: ton programme fonctionne donc comme il est conçu.
        0
      2. Contributeur Ambassadeur
        une erreur, à corriger:
        - tu ne modifies pas $file_url quand tu modifies $file, puis tu enregistres la mauvaise valeur de $file_url
        une suggestion: enregistre $num dans ta table, tu pourras ensuite facilement rechercher le $num maximum, et faire +1 pour la commande suivante
        - autre suggestion: si tu as un champ numérique unique dans ta table commande, tu pourrais utiliser ce champ pour créer ton nom de fichier.
        0