Ankündigung

Einklappen
Keine Ankündigung bisher.

Kundennummer generieren!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kundennummer generieren!

    Hallo Freunde,
    wie kann ich denn eine Kundennummergenieren, die ich anschließen in eine Datenbank speichern kann?
    Es geht mir nur um die Kundennummergenaration.
    Habe da was im Netzt gefunden:

    Werde daraus aber nicht schlau und funktioniert auch nicht wircklich:

    PHP-Code:
    //Kundennummer generieren
    function generate_Kundennummer()
    {
        global 
    $abstract;
        
    mt_srand(microtime()*1000000);
        do {
            
    $kunde substr(mt_rand(), 04);
            
    $query_kdnr 'SELECT `Kunde` FROM $tbl_name WHERE `Kunde` ="'.$kunde.'"';
            
    $result_kdnr $abstract->checkQuery($query_kdnr);
        } while( 
    count($result_kdnr) );
        return 
    $result_kdnr['Kunde'];

    Kann mir jemnad weiterhelfen?
    Danke

  • #2
    Also so wie das aussieht gehört da auch noch irgendwo ne Klasse abstract dazu incl memberfunktion checkQuery()

    dh es sieht schonmal unvollständig aus...

    ne kundennummer generieren... hm
    Je nach zweck...
    kannst das dir selber baun...

    ne kundennummer nur aus zahlen oder ne ganze ID mit zahlen und Buchstaben?
    wenn zweiteres ist man mit mehrfachem md5 hashing von sich wenig oder gar nicht ändernden und halbwegs einzigartigen Daten ganz gut bedient

    Kommentar


    • #3
      Ich würde den Auto Increment Datentyp von Mysql nutzen

      Kommentar


      • #4
        Das heißt, ich nehme einfach ein Spalte (ID)(INT,mit auto_icrement), mit der MD5 Funktion?

        Da ja dann keine Zahl doppeltvorkommt, erspare ich mir auch die Funktion, ob die Kundennummer schon vorhanden ist.

        Das Proble ist vielleicht, dass die Kundennummer so lang wird.

        Ich würde gerne, eine Kundennummer wie folgt aufbauen:

        Datum-Zahl(von 1000)

        Z.B 632009-658.

        Wie kann ich den ein Zahl von z.B. 1000 nehmen, ohne das die doppelt ausgegeben wird?

        Kommentar


        • #5
          also das mit der ID ist schomal ein sehr guter ansatz, da er schön statisch ist, das registrierungsdatum in Unix-format auch, da auch schön statisch...
          hat den sinn dass man eine evtl beschädigte Kundenummer regenerieren kann o.ä.

          mein beispiel wäre dann so:
          md5(md5(Registrierungsdatum und zeit in UNIX Format)+Kunden ID aus Datenbank)

          Die länge kann man dann mit substring wieder kürzen.
          Ps.: auch Kundenhashes würden so sehr gut funktionieren zb für sessions, man sollte dann aber noch mehr verschachtelungen nehmen...

          Kommentar


          • #6
            Ich finde 32-stellige Hexzahlen als Kundennummer (= eine Zahl, die man auch in Schreiben, Emails etc. als Referenz angibt) irgendwo doof.

            Kommentar


            • #7
              XD

              Ja aber manche wollen das halt.
              kann man nüscht machen

              Kommentar


              • #8
                mysql stellt dir mit autouncrement eine eindeutige Zahl zur Verfügung. Die erste zeile hat die Nummer 1, die zweite Zeile die 2 usw.
                Wenn du dann noch mit führenden Nummen auffüllst und Jahr&Monat voranstellst, dann hast du eine hübsch aussehende Kundennummer:

                1 -> 0903-001
                2 -> 0903-002
                3 -> 0904-003

                Kommentar


                • #9
                  Ja aber manche wollen das halt.
                  Naja, primär will er erstmal nur eine Kundennummer. Muß sicher kein md5 sein. Ich finde Kundennummern, die fortlaufend sind auch viel sinnvoller.

                  Kommentar


                  • #10
                    Klar ja... hab ich noch gar nicht dran gedacht... vll ist ihm auch eine unverschlüsselte Kundennummer recht...
                    da is das auch recht von vorteil (ausser der 3-x stellige Pool geht aus)

                    Kommentar


                    • #11
                      Seit wann sind Kd-Nummern verschlüsselt Zudem ist md5 keine Verschlüsselungsverfahren.

                      Kommentar


                      • #12
                        Naja um halt eine schöne komplizierte Kundennummer vorzutäuschen die jeglicher logik entspricht... n bissl hab ich das auch mit Kundenprüfsummen/hashes verwechselt, ist aber für beides verwendbar.

                        Wer nicht will muss nicht... ich gebe mich mit der id in der datenbank zufrieden und vll noch firmennamen als referenz.

                        Kommentar


                        • #13
                          Zitat von Wolla Beitrag anzeigen
                          Wenn du dann noch mit führenden Nummen auffüllst und Jahr&Monat voranstellst, dann hast du eine hübsch aussehende Kundennummer:
                          Wie kann ich den das machen?
                          Also wenn ich 1,2,3etc. habe?
                          Datum ist klar. Aber wie kriege ich die 001,003,004 hin?

                          Kommentar


                          • #14
                            [MAN]sprintf[/MAN]
                            ist am einfachsten.

                            Wenn man das nicht kennt aber weiß, dass jede bessere Programmiersprache Befehle zur Stringbearbeitung zur Verfügung stellt, dann kann man vor die Zahl auch zwei Nullen setzen und dann die letzten drei Zeichen ausschneiden.

                            Oder man baut eine Schleife und haut solange Nullen vor die Zahl, bis der String die Länge drei hat.

                            Kommentar


                            • #15
                              SQL:
                              Code:
                              LPAD(str,len,padstr)

                              Kommentar

                              Lädt...
                              X