PHP & MySQL - Generieren Rechnungs-Nr. eine Zahl aus der Datenbank
Ich brauche zur Erstellung einer Rechnung Nummer aus eine ganze Zahl, eine Tabelle mit einer auto-increment-ID der Datenbank, wo die Benutzer Einkäufe gespeichert.
Beispiel der Tabelle Rechnung-Datenbank:
Rechnungsnummer-format Etage haben Sie zwei Möglichkeiten.
Beispiel 1: von der Anzahl der Rechnungen ohne Präfix:
0000001 |
0000002 |
0000003 |
0000004 |
0000005
Beispiel 2: die Anzahl der Rechnungen mit Präfixen:
F-0000001 |
F-0000002 |
F-0000003 |
F-0000004 |
F-0000005
Frage:
1) ¿Was ist der beste Weg, dies zu tun, die Sie tun können, direkt von MySQL oder PHP?
2) ¿Was ist die am besten geeignete format Beispiel 1 oder Beispiel 2?
Ich schätzen Ihre Unterstützung, wie immer!
LPAD()
und CONCAT()
.Ich verwendet, CONCAT (), aber ich habe nicht verwendet, LPAD (), CONCAT (), könnte verketten Sie die ID mit Nullen, die ich brauche, aber nicht, wenn diese Funktion kann die Werte und nicht verlängern Nullen erhöht Sie die ID-Nummer, kann sich bitte ein Beispiel geben?
InformationsquelleAutor Learning and sharing | 2015-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dank Gordon Linoff, ich könnte einen Weg, um dieses Problem zu lösen.
Werde ich Ihnen ein Beispiel, vielleicht wird jemand interessiert sein könnten.
SQL - Rechnung ohne Präfix:
SELECT id, LPAD(id,7,'0') FROM invoice WHERE id = 1;
Ergebnis: 0000001
SQL - Rechnung mit Präfix:
SELECT id, CONCAT( 'F-', LPAD(id,7,'0') ) FROM invoice;
Ergebnis: F-0000001
InformationsquelleAutor Learning and sharing
1 - 0000001 | 0000002 | 0000003 | 0000004 | 0000005
$dbValue = 1;
echo $dbValue = str_pad($dbValue, 7, "0", STR_PAD_LEFT); //es wird geben 0000001;
2 - F-0000001 | F-0000002 | F-0000003 | F-0000004 | F-0000005
$dbValue = 1;
echo $dbValue = "F-".str_pad($dbValue, 7, "0", STR_PAD_LEFT); //es wird produzieren F-0000001;
bessere Praxis, wenn Sie mithilfe von sql-Anweisung prefix + padding-string.
dies würde die Beseitigung der
0
aus der string-als$dbValue
starten die Erhöhung um 2, 3, 4-stellig und so weiter, sollte es halten die sieben0
im start-und fügen Sie die erhöht$dbValue
wie0000000123
Ihre Antwort haben0000123
InformationsquelleAutor Sapan Mohanty
Fetch Letzte ID aus der Datenbank und speichern Sie es in eine PHP-variable.
Zum Beispiel, wenn der Letzte Datensatz ist
100
, dann erhöht es durch1
.Schließlich die Antwort für die zweite Frage ist,
InformationsquelleAutor LOKESH
Können Sie schreiben, ein guter Helfer-Funktion in PHP um es zu benutzen, wo immer Sie wollen in Ihrer Anwendung aus, um eine Rechnungsnummer. Die folgende Hilfsfunktion vereinfachen Ihren Prozess.
Sobald Sie fertig sind schriftlich helper-Funktion, die Sie nicht brauchen, zu verwenden
LPAD
oderCONCAT
MySQL-Funktionen zu jeder Zeit in Ihrem Abfrage-ID mit Polsterung Nullen oder Nullen mit Präfix. Wenn Sie haben weltweiten Zugriff auf die Hilfsfunktion, die in der gesamten Anwendung ist, müssen Sie nur aufrufen, wo immer Sie wollen zu generieren Rechnungsnummer.Froh, es scheint wirklich hilfreich zu Ihnen!
InformationsquelleAutor Wolverine
Ans-1):
Kann man dies mit PHP(direkt von
concat
oder verwenden Siestr-pad
) sowie mit MySQL(LPAD
) auchAber nach meiner Ansicht, sollten Sie dies tun, indem Sie PHP, so dass Sie es ändern können nach Ihren wünschen erweitern, z.B. Nullen als pro Anzahl der id ' s in der DB.So ändern Sie SQL-Abfragen und machen es schwer.
Ans-2):
Sie können mit beiden Formaten, aber wenn Sie möchten, um genauer zu sein über bestimmten Benutzer oder irgend etwas anderes, dann den zweiten-format.
Ich denke, dass zweite format kann geben Ihnen mehr Informationen über die Daten
InformationsquelleAutor Abbas