Generer automatiquement le numéro
glodybiss
Messages postés
440
Date d'inscription
Statut
Membre
Dernière intervention
-
Mihawk Messages postés 4315 Date d'inscription Statut Contributeur Dernière intervention -
Mihawk Messages postés 4315 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis entrain de créer dans mon application un système de création des tickets automatique, ça fonctionne parfaitement bien et j'ai utilisé un script php pour générer automatiquement le numéro du ticket mais il s'avère que ce script n'affiche pas une suite logique c'est à dire que les numéros sont généré aléatoirement; alors j'aimerais une aide de votre part, je veux que le numéro puisse avoir une suite logique par exemple : date/heure/numéro d'ordre, un peu comme 0708001.
Voilà ce que j'ai utilisé pour créer le numéro de ticket :
Je suis entrain de créer dans mon application un système de création des tickets automatique, ça fonctionne parfaitement bien et j'ai utilisé un script php pour générer automatiquement le numéro du ticket mais il s'avère que ce script n'affiche pas une suite logique c'est à dire que les numéros sont généré aléatoirement; alors j'aimerais une aide de votre part, je veux que le numéro puisse avoir une suite logique par exemple : date/heure/numéro d'ordre, un peu comme 0708001.
Voilà ce que j'ai utilisé pour créer le numéro de ticket :
<?php $nb_min = 1; $nb_max = 100000; $nombre = mt_rand ($nb_min,$nb_max); ?> //on affiche le numéro ici echo $nombre;
A voir également:
- Generer automatiquement le numéro
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Comment generer une table de matiere automatiquement - Guide
- Automatiquement - Guide
- Numero imei - Guide
2 réponses
Bonjour,
C'est normal que le nombre ressorti est aléatoire, c'est le but de la fonction mt_rand.
Si le tout est enregistrer en base de données, pourquoi ne pas créer un numéro se basant sur l'id de l'enregistrement ? C'est tout simple et ça assure un numéro de ticket unique.
C'est normal que le nombre ressorti est aléatoire, c'est le but de la fonction mt_rand.
Si le tout est enregistrer en base de données, pourquoi ne pas créer un numéro se basant sur l'id de l'enregistrement ? C'est tout simple et ça assure un numéro de ticket unique.
Salut GlodyBiss, ça fait un bail :)
En effet pour un compteur, le plus simple reste de stocker sa valeur en base. Par exemple tu te fais une table "compteur" et dedans tu fais une ligne pour ton compteur.
Ensuite je te propose d'utiliser :
1/ La fonction date() et ses paramètres pour récupérer heures, minutes, jour, mois, etc... https://www.php.net/manual/fr/function.date.php
2/ Ta donnée de compteur en base pour la fin du numéros ; sans oublier de l'incrémenter à chaque fois bien sûr.
Autre solution : tu utilises le timestamp (time())comme numéro de ticket ; il s'incrémente chaque seconde, n'existera jamais en double (sauf si tu as énormément de trafic, alors tu utilises microtime())
En effet pour un compteur, le plus simple reste de stocker sa valeur en base. Par exemple tu te fais une table "compteur" et dedans tu fais une ligne pour ton compteur.
Ensuite je te propose d'utiliser :
1/ La fonction date() et ses paramètres pour récupérer heures, minutes, jour, mois, etc... https://www.php.net/manual/fr/function.date.php
2/ Ta donnée de compteur en base pour la fin du numéros ; sans oublier de l'incrémenter à chaque fois bien sûr.
Autre solution : tu utilises le timestamp (time())comme numéro de ticket ; il s'incrémente chaque seconde, n'existera jamais en double (sauf si tu as énormément de trafic, alors tu utilises microtime())
Salut Mihawk ! ça fait vraiment un bye, j'suis content que tu sois là parce que généralement toi et Assassin vous me donnez des solutions! ^^
Voici à quoi ressemble mon code, j'ai mis une petite pause avec le code à générer je cherche d'abord à résoudre un autre problème qui vient de se poser! Il se fait que quand j'envoie mon mail toute les variables que j'ai déclaré ici ne sont pas pris en charge, le mail va vide sans rien et je reçois l'erreur que toute ces variables sont indéfini !
voici mon code :
Erreur :
Voici à quoi ressemble mon code, j'ai mis une petite pause avec le code à générer je cherche d'abord à résoudre un autre problème qui vient de se poser! Il se fait que quand j'envoie mon mail toute les variables que j'ai déclaré ici ne sont pas pris en charge, le mail va vide sans rien et je reçois l'erreur que toute ces variables sont indéfini !
voici mon code :
<?php include_once('secure.php'); //Paramettre mmail $Destinataire = "news@cybernet.cd"; $Sujet = "Nouveau Ticket enregistré"; $From = "From:news@cybernet.cd\n"; $From .= "MIME-version: 1.0\n"; $From .= "Content-type: text/html; charset= iso-8859-1\n"; $Message = "Dear, <p>Un nouveau ticket vient d'etre créé dont voici les details : </p><p>Numero du ticket : $ticketnumber</p><p>Client : $customer_name</p><p>Type de Plainte : $plainte_type</p><p>Ticket créé par : $by</p><p>Date et heure : $date</p><p>Commentaire :$comment</p>"; //genère le numero de ticket $nb_min = 1; $nb_max = 100000; $nombre = mt_rand ($nb_min,$nb_max); //genère le numero de ticket ?> <?php if (isset($_POST['Soumettre']) && $_POST['Soumettre'] == 'Soumettre') { extract($_POST); if (isset($_POST['customer_name']) && !empty($_POST['customer_name'])) { $erreur = 'Le nom du client est vide.'; } if (isset($_POST['by']) && !empty($_POST['by'])) { $erreur = 'Vous devriez indiquer votre nom pour suivi.'; } $sql = 'INSERT INTO 'ticket'('ticketnumber','customer_name', 'by', 'plainte_type', 'comment', 'date') VALUES ("'.mysql_escape_string($_POST['ticketnumber']).'","'.mysql_escape_string($_POST['customer_name']).'","'.mysql_escape_string($_POST['by']).'", "'.mysql_escape_string($_POST['plainte_type']).'","'.mysql_escape_string($_POST['comment']).'", "'.date('Y-m-d H:i:s').'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); if ( mail( $Destinataire,$Sujet,$Message,$From) ) // tentative d'envoi du message { $mailSent = true; } else // échec de l'envoi { $errors[] = 'Erreur d\'envoie de mail.'; } echo '<div id="info" class="succes">Ticket enregistré</br></div>'; exit(); } ?> <div id="boxAgent"> <form action="" method="post" name="form1" id="form1"> <table> <?php // échec de l'envoi if (isset($erreur)) { echo '<div id="info" class="error">'.$erreur.'</div><!--error-->'; } ?> <br/><br/><h3>Nouveau Ticket</h3> <tr> <td>Numero du Ticket</td> <td > <input type="text" name="ticketnumber" class="input_ajout_agent" value="TK<?php echo $nombre; ?>" /><!--- affiche le numero de ticket--> </td> </tr> <tr> <td class="td">Customer Name</td> <td> <?php $query = "SELECT 'username' FROM 'wimax_site'"; $result = mysql_query($query); echo '<SELECT name="customer_name" class="input_ajout_agent" value="<?php if (isset($_POST["customer_name"])) echo htmlentities(trim($_POST["customer_name"])); ?>">'; echo '<OPTION>Choisissez le client</OPTION>'; while ($row = mysql_fetch_array($result)) { echo '<OPTION>'.$row['username'].'</OPTION>'; } echo '</SELECT>'; ?> </td> </tr> <tr> <td>Ticket créé par</td> <td > <input type="text" name="by" class="input_ajout_agent" value="<?php echo htmlentities(trim($_SESSION['nom'])); ?>" /> </td> </tr> <tr> <td>Concerne/Plainte</td> <td> <select type="text" name="plainte_type" class="input_ajout_agent"> <option>Choisissez</option> <option value="Manque de connexion">Pas d'accès internet</option> <option value="Desinstallation">Desinstallation</option> <option value="Installation">Installation</option> <option value="Lenteur">Lenteur</option> <option value="Reactivation">Reactivation</option> <option value="Mise en test">Mise en test</option> <option value="Mise en test">Mail</option> <option value="Changement de service">Changement de service</option> <option value="Autres">Autres</option> </select> </td> </tr> <tr> <td>Detail/Commentaire</td> <td > <textarea type="text" name="comment" class="input_ajout_agent" value="<?php if (isset($_POST['comment'])) echo htmlentities(trim($_POST['comment'])); ?>" ></textarea></td> </tr> <tr> <td></td> <td><input type="submit" name="Soumettre" class="submi" value="Soumettre" /></td> </tr> </table> </form></div>
Erreur :
Notice: Undefined variable: ticketnumber in C:\wamp\www\wimaxcustomer\ticket.php on line 9 Notice: Undefined variable: customer_name in C:\wamp\www\wimaxcustomer\ticket.php on line 9 Notice: Undefined variable: plainte_type in C:\wamp\www\wimaxcustomer\ticket.php on line 9 Notice: Undefined variable: by in C:\wamp\www\wimaxcustomer\ticket.php on line 9 Notice: Undefined variable: date in C:\wamp\www\wimaxcustomer\ticket.php on line 9 Notice: Undefined variable: comment in C:\wamp\www\wimaxcustomer\ticket.php on line 9
Ouais! Je vois. Thanks, j'ai corrigé mais j'sais pas quoi mettre pour que les variables définies prenne les $_POST.
Voici ce que j'ai ajouté :
Voici ce que j'ai ajouté :
/Paramettre mmail $Destinataire = "news@cybernet.cd"; $Sujet = "Nouveau Ticket enregistré"; $From = "From:news@cybernet.cd\n"; $From .= "MIME-version: 1.0\n"; $From .= "Content-type: text/html; charset= iso-8859-1\n"; $ticketnumber =""; $customer_name=""; $plainte_type=""; $by=""; $date=""; $comment=""; $Message = "Dear, <p>Un nouveau ticket vient d'etre créé dont voici les details : </p><p>Numero du ticket : $ticketnumber</p><p>Client : $customer_name</p><p>Type de Plainte : $plainte_type</p><p>Ticket créé par : $by</p><p>Date et heure : $date</p><p>Commentaire :$comment</p>";
Lors de la génération du ticket, tu génères le jour et le mois. Ces trois données sont enregistrées dans la base de données. Lorsqu'il faut afficher le numéro de ticket, il suffit de concaténer ces trois données et le tour est joué.