Bonjour, dans le cadre d´Un formulaire de commande (ticket de restaurant) obtenir un numero de commande allant de 1 à x et revenir à 1 à x tous les jours.
Table commande : id_commande, date_commande, detail_commande, etc..
Comment faire ?
Version imprimable
Bonjour, dans le cadre d´Un formulaire de commande (ticket de restaurant) obtenir un numero de commande allant de 1 à x et revenir à 1 à x tous les jours.
Table commande : id_commande, date_commande, detail_commande, etc..
Comment faire ?
Salut,
comment tu détermines le numéro de ton ticket (poste le code stp)
Bah justement mdr je n'ai pas de codes pour mon ticket, je ne veux pas utiliser la clé primaire, je veux un nouveau champs avec un numéro du style (last iddujour+1 qui repart à zéro chaque jour)
une table ticket_table avec deux colonnes nr_ticket et date_ticket
On tente d'abord d'incrémenter le numéro du ticket
Code:Update ticket_table set nr_ticket=nr_tickets+1 where date_ticket=curdate()
Si cette requête retourne une erreur ou false, cela veut dire qu'il n'y a pas eu de ticket ce jour,
Il sufftit alors de l'initialiser poru le jour :
Code:Insert into ticket_table (date_ticket, nr_ticket) values (curdate(), 1)
Bonjour,
Je n'arrive pas à mettre en oeuvre la solution que tu me présentes.
Je souhaite faire un insert (selectmax nr_ticket +1 ou 1 si la date du jour a changé).
Bonjour,
Je suis toujours bloqué.
Je comprends pas l'update, je n'veux pas modifier de ligne precedente.
Je n'arrive pas à construire ma requete. Je peux changer les tables si il le faut.
Je souhaite apres l'insert de la commande totale, lui attribuer un numero de commande (autre que id primary key) qui se reinitialise chaque jour.
Ex :
Lundi 1 : 1
Lundi 1 : 2
Mardi 2 : 1
Mardi : 2
L'idee je l'ai comprise :
If datecommande = aujourd'hui
Then insert select max_numcommande+1
Elseif numcommande =1.
Est-ce que dans l'idee ca c'est bon? Etant donné que datecommande n'est pas encore inseré. (J'ai un script qui affiche la date complete avec heure, je peux m'en servir lors de l'insert)
Mais pour la syntaxe de la requete je n'y arrive pas du tout.
Merci.
Bonjour,
Principe :
1- Une colonne "num_commande" dans la table "commande" (pas besoin de table supplémentaire)
2- SQL : Requête du num MAX pour CE jour :
N.B. NOW() ou CURDATE() : en fonction du fromat de la colonne "date_commande" (voir SQL - Fonctions de dates et d’heures)Code:"SELECT MAX(num_commande) AS max_num FROM commande WHERE date_commande = NOW()"
3- PHP : traitement du résultat de la requête :
- si pas de résultat -> c'est la 1ère commande de la journée : $Num =1;.
- si il existe un résultat -> on incrémente : $Num = $row['max_num']+1;.
C'est compris dans l'idée. Mais au 3 je bloque :
Comment ecrire la syntaxe "si pas de resultat"
Comment construire la requete en prenant en compte les conditions et les differents cas?
Des le debut j'suis bloqué : "IF select pas de resultat" j'vois absolument pas comment faire.
Tu sais faire une requête SQL ou pas ? (PDO ? mysqli ?)
On ne va quand même pas t'écrire tout le code, si ?
Oui pdo et mysqli mais je ne sais pas combiner une requete complexe (avec if par exemple la syntaxe me parait compliqué surtout si je dois y ajouter un where exist etc).
Ca m'arrangerait beaucoup si tu me l'ecris oui, ca me permettrait de comprendre comment faire, de comprendre pourquoi j'ai pas su le faire, et de comprendre comment je ferais plus tard. Et aussi de passer à d'autres problemes.
Merci,
Qui a dit que les if sont dans la requête ?
On est ici dans le forum PHP.
(j'ai mis à jour mon message )
Je n'ai pas compris ton message.
J'ai toujours mon probleme de syntaxe, je ne saurais pas seul imbriquer ces 3 requetes avec des conditions.
Si tu ne souhaites pas ecrire le code je peux le comprendre, mais pourrais tu m´indiquer l'ordre dans ce cas, ca me permettrait peut etre d'y voir plus clair :
Je vois deux facons :
1: IF
2 : "SELECT MAX(num_commande) AS max_num ........ WHERE date_commande = NOW()"
3: return true
4: then
5: insert max_num+1
6: else
7 : insert numcommande=1
Ou alors :
1 : insert select where (mais dans ce cas j'imagine meme pas la suite 😐)