codification style 1A0001 , 1A0002
bonjour, pour mon projet de fin d'étude je suis amenée à developper une application web pour le service help desk. étant novice en programmation php , je recontre quelques difficultés concernant la codification des tickets " l'identifiant d'un incident ou requète qu'envoie l'utilsateur final au service help desk " , la structure du code est la suivante : 1A0000 " 1 pour l'année en cours , A pour le mois et 0000 numéro séquentiel " . 1A0000 premier ticket . 1A0001 deixième ticket. 2A0000 num ticket de l'année suivante . je sollicite votre aide pour programmer cette codification merci d'avance cordialement
Réponses apportées à cette discussion
Salut,
Je t'ai répondu sur PHPScript-fr ;) Je te remets ce que j'ai mis :
Voici comment je verrai la structure de la table des tickets. Avec leur codification foireuse, tu ne pourras pas faire de recherches facilement sur les tickets (par date, par année, par mois, par jour...). Donc pour conserver cette référence obligatoire du ticket, il va falloir aussi que tu crées d'autres champs dans la table qui conserveront la date de création du ticket, un identifiant auto incrémenté pour gérer de manière unique le ticket. Tu aurais donc quelque chose comme ça :
id INTUNSIGNED NOT NULL AUTO INCREMENT PRIMARY KEY, reference CHAR(6) NOT NULL (avec une clé d'index UNIQUE) created_at DATETIME NOT NULL # les autres champs ensuite
Pour savoir quel est le numéro du ticket à l'enregistrement, tu vas devoir compter le nombre d'enregistrements présents dans la table pour l'année donnée et le mois donné en te basant sur le champ created_at. Ce qui donnera pour le mois de juin 2008 :
SELECT COUNT(*) FROM ticket WHERE YEAR(created_at)='2008' AND MONTH(created_at)='06' GROUP BY id
Tu obtiens ici le nombre de tickets ouverts en juin 2008. Il te suffit ensuite d'incrémenter ce nombre pour savoir le numéro du ticket en cours de création et ainsi construire la référence du ticket.
Pour gérer les symbôles A, B, C... tu peux utiliser un tableau associatif à 12 entrées (12 mois) où chaque clé correspond au numéro du mois et où la valeur est la lettre. Ce qui donne :
<?php $codeMois = array( 1 => 'A', 2 => 'B', 3 => 'C' ... ); ?>
++
oui je vous ai vite reconnu ;) ce que le monde est petit :D
j'ai eu pas mal de réponses sur différents sites ce qui va me permettre sans doute de trouver la meilleure solution . mais le problème que je rencontre est celui de la codif de l'année qui va etre sur deux positions car dans deux ans "2010" le chiffre concernant l'année sera 10 !!
cordialement
C'est le mois qui va te servir de délimiteur pour tout retrouver. Celui-ci est une lettre, et tout le reste ne sont pas des lettres, donc tu peux y arriver comme ceci :
Tout ce qu'il y a avant la lettre => c'est l'année La lettre => c'est le mois Tout ce qu'il y a après => c'est le numéro
vous voulez dire que pour trouver les tickets d'un mois précis , je fais une recherche par rapport à la lettre ?