# Kundennummer erstellen!



## proloser (27. Oktober 2006)

Hallo,

ich habe in der Datenbank folgende Tabellen ...

*Verkäufer*
id | benutzername | passwort

*Kunden*
id | verkaeuferid | kdnr | benutzername | passwort


Ich möchte damit jede Kundennummer von den Verkäufern mit ...

0001 
0002
0003
usw.

... anfängt! (das Problem liegt nicht an den Nullen vor der Zahl)

Wie generiere ich die Kundennummern damit sie bei jedem Verkäufer bei 0001 anfangen?

MfG proloser


----------



## Gumbo (27. Oktober 2006)

Meinst du etwa, dass von der Kundennummer auf die Nummer des Verkäufers zurückzuschließen sein soll? Wozu soll das gut sein? Wenn es Prämien für neugewonnene Kunden gibt, solltest du das anders regeln.


----------



## hubeR83 (27. Oktober 2006)

sofern du die verkäuferid in der Kundentabelle speicherst, und dort beispielsweise "0001" drin steht, brauchst du dieses nicht mehr mit in die Kundennummer schreiben...

Ich verstehe dein Problem nicht so ganz


----------



## proloser (27. Oktober 2006)

Ich versuch es zum etwas besser zu erklären ...

zB habe ich 3 Verkäufer und jeder Verkäufer hat 5 Kunden.

1. Verkäufer
    0001 Kunde
    0002 Kunde
    0003 Kunde
    0004 Kunde
    0005 Kunde

2. Verkäufer
    0001 Kunde
    0002 Kunde
    0003 Kunde
    0004 Kunde
    0005 Kunde

3. Verkäufer
    0001 Kunde
    0002 Kunde
    0003 Kunde
    0004 Kunde
    0005 Kunde


Damit eben bei jedem Verkäufer die Kundennummer bei "1" bzw "0001" anfängt!


----------



## darksmilie (27. Oktober 2006)

Warum willst du das ganze mit den drei nullen davor generieren?

Wenn du das mit den drei nullen machen willst müsstest du das als zeichenkette abspeichern und müsstest sie dann extra in int werte umwandeln, aber wenn du auf die nullen verzichten könntest würde es einfacher zu programmieren sein.

Falls du das ganze überhaupt brauchst?

du könntest dir das einfach in deiner Ausgabe machen, aber in die DB gehört das eigentlich nicht, da du ja die beziehung zum verkäufer hast.


----------



## soyo (27. Oktober 2006)

Einfach als Integer in die Datenbank. Bei der Ausgabe mit Hilfe von sprintf() die Kundennummer formatieren.


----------



## TwoFaze (27. Oktober 2006)

Ich kann die Logik hinter deinem Vorhaben nicht so ganz verstehen.

Sinn der Kundennummer sollte es doch sein, diese einmalig zu vergeben.
Ich würde jedem Kunden eher eine Verkäufernummer zuweisen, wodurch sich die Kunden dann zuordnen lassen.

Wenn es dir um die Anzahl der Kunden eines Verkäufers geht, kannst du diese doch immernoch später durchzählen.

Vielleicht könntest du uns den Sinn und Zweck etwas genauer schildern?

MfG


----------



## King of Darkness (27. Oktober 2006)

Hi,

vielleicht nicht die beste Lösung, aber *g*
bevor du einen neuen Kunden einträgst machst du ein Select auf die Kundentabelle mit MAX()

```
SELECT MAX(kundennr) FROM Kunden WHERE verkaeufer_id = 1
```

Dann bekommst du die letzte ID und zählst nur noch 1 dazu.

Die Zahlen kannst ja dann erst beim ausgeben Formatieren.

Ob das nun sinnvoll ist oder nicht, das jeder Verkäufer bei 1 anfängt oder nicht ist zwar deine Entscheidung aber ich seh da jedenfalls nicht wirklich nen Sinn.


Gruß
King of Darkness


----------



## proloser (27. Oktober 2006)

Ihr müsst euch das so vorstellen jeder Verkäufer hat ein Shop und seine Kunden und dachte mir ich stelle die Kundennummer so zusammen ...

[VERKÄUFER ID] + [KUNDENNUMMER]

zB

*1. Verkäufer*
1-0001
1-0002
...

*2. Verkäufer*
2-0001
2-0002
...

Aber wenn jemand eine bessere Idee hat wäre ich dankbar wenn er sie mir sagt!


----------



## MikeDe (27. Oktober 2006)

ich würde es so machen, wenn du ne längere zahl haben willst, einfach halt Verkäufer 1 hat 1000, Verkäufer 2 hat 2000 als id und dann halt Kunde von Verkäufer 2: 2000 + die id des käufers 20001 20002 20003 usw


----------



## Gumbo (27. Oktober 2006)

Ich würde die Verkäufernummer nicht als direktes Merkmal eines Kunden benutzen sondern diese Information separat speichern. Denn angenommen, der Kunde möchte seinen Verkäufer wechseln – wechselt dann auch seine Kundennummer?


----------



## soyo (28. Oktober 2006)

Warum speicherst du nicht einfach die Verkäufer-ID im entsprechenden Datensatz für den Käufer. Für spätere Änderungen, bzw Ausgaben wäre das so um einiges Einfacher. 

zB.: Ein Käufer ändert seinen Verkäufer, jetzt musst du die Käufer-ID in jeder Tabelle ändern, wo diese vorkommt. Das sind 1. Unnötig viele Datenbank-Eingaben und 2. Unnötig viel Skriptarbeit. Und warum diese unnötige Arbeit machen, wenn es doch viel einfacher und komfortabler geht.


----------

