|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2010 Messages : 52 ![]() |
Bonjour,
Un petit souci dans mon php dans ma base de donnée j'enregistre tout les numéros de facture généré, afin de générer une nouvelle facture celui-ci va récupérer le dernier numéro de facture. voici comment ce présente met numéro de facture: Numéro de fature: 2012-0001 2012-0002 2012-0003 2012-0004 2012-0005 Je veux récupérer le dernier numéro de facture lui donnée une valeur +1 pour que ma nouvel facture soit en claire 2012-0006 pour cela voici ce que je fais: Code :
Cordialement |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Code sql :
SELECT max(numfacture) AS numMax FROM facture
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
20
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2010 Messages : 52 ![]() |
ton code permet de récupérer le dernier enregistrement il me semble !? et agi simplement sur une valeur numérique entier, en occurrence la j'ai un tiret dans le numéro de ma facture..
|
|
|
00
|
|
|
#4 | ||
|
Membre expérimenté
![]() |
Quelque chose de ce genre :
Code :
|
||
|
|
20
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2010 Messages : 52 ![]() |
nsanabi
ça résolue pas le problème ce que tu propose, le problème de base il est a la sélection dans la base de donnée... ça ne veux sélectionné le plus grand.. merci tout de même de ton intervention. |
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() ![]() |
Pas du tout, dans une base de données c'est une erreur que de parler de dernier enregistrement. A vrai dire la notion de premier, dernier ou milieu n'existe pas. Il n'y a pas de position à moins que tu n'utilises un champs spécifique porteur de cette information qui reste, somme toute, très très relative.
Citation:
MAX() se contente des deux formats : numérique ou texte. Donc le code donné par Bovino répond parfaitement à ton problème. Essayes-le et tu verras. Regardes ici
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
|
10
|
|
|
#7 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2010 Messages : 52 ![]() |
salut rawsrc
J'ai essayé ce que Bovino ma proposé, le problèmes c'est que ça affiche les 4 premier chiffre donc ça s'arrete au tiret et sa ajoute +1 pourquoi récupère t-il seulement les 4 premiers chiffres... dans ma table j'ai bien met 2012-0001 2012-0002 2012-0003 2012-0004 2012-0005 donc du coup dans ma variable il enregistre que le 2012 et y ajoute +1 Code :
|
||
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() ![]() |
Euh, c'est tout à fait normal.
Tu récupère un string avec le sql. '2012-0001' n'est pas un nombre valide, tu ne peux pas lui faire un +1. D'où le tronquage au premier caractère non numérique rencontré. Gardes le code de Bovino et essayes avec le code de nsanabi
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
20
|
|
|
#9 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2010 Messages : 52 ![]() |
bonne nouvelle ça avance..
Premier problème si je n'ajoute +1 il m'affiche bien 2012-0001, 2012-0002 etc... a partir du moment ou je met +1 ça change en 2012-2, 2012-3 hors mois je veux garder met 4 chiffre... autre chose il va faire +1 jus-cas 2012-0010 après il additionne plus.. Code :
|
||
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé
![]() ![]() |
Et comme ça :
Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
10
|
|
|
#11 | |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2010 Messages : 52 ![]() |
Impec rawscr ça fonctionne et grand merci à tout les trois
rawscr Je comprend bien ce que ça fais mais alors la pour moi c'est en partie du chinois ^^ Citation:
|
|
|
|
00
|
|
|
#12 | ||||
|
Expert Confirmé
![]() ![]() |
Pour le chinois, voici quelques explications :
sprintf() est une fonction de formatage des données très pratique : un peu de lecture ici. Ensuite l'utilisation de ++$part2 veut dire qu'il faut incrémenter la valeur de la variable $part2 avant de l'utiliser dans sprintf(). Voici le code équivalent : Code :
Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||||
|
10
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2010 Messages : 52 ![]() |
d'accord super sympas pour l'explication.
je connaissais pas Merci beaucoup |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com