bestellnummer erstellen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • bestellnummer erstellen

    hi leuts,

    ich möchte eine eindeutige, immer unterschiedliche bestellnummer für jeden user erstellen.
    bei jedem DB eintrag wird datum und zeit in die tabelle reingeschrieben.

    wie kann ich es bei folgendem script nun anstellen, dass ich aus diesen zwei werten eine eindeutige bestellnummer mache?

    code:
    $date = date("Y-m-d");
    $time = date("H:i:s");

    $bestnr1 = str_replace("-", "", $date);
    $bestnr2 = str_replace(":", "", $time);
    // $bestnr3 => da brauch ich noch irgend was damit es eindeutig wird!!!!

    $bestnr_all = $bestnr1.$bestnr2.bestnr3;

    $blub = mysql_query("INSERT INTO tabellenname (DATEmm,TIMEmm,ORDERNRmm) values ('$date','$time','$bestnr_all')");


    bitte um rat
    $PHP resource 4ever$

  • #2
    nimm doch einfach einen time() wert der sollte ziemlich eindeutig sein.
    Oder einen Autoincrementwert
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Comment


    • #3
      Allein Zeit und Datum reichen nicht aus, um eine Bestellung eindeutig zu identifizieren. Im ungewöhnlichen (aber durchaus möglichen Fall), dass es 2 Bestellungen in der selben Sekunde gibt, hast du ein Problem, wenn du die Auftragsnummer aus der Zeit ableitest.
      Auf Zufallszahlen von PHP würde ich auch nicht setzen.

      Ich würde wirklich eine auto increment ID benutzen. Die erste Bestellung in deinem System bekommt die 1. Die zweite bekommt die 2 usw. usw.
      Das ist sicher und zugleich die einfachste Lösung.
      [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
      [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
      [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

      © Harald Schmidt

      Comment


      • #4
        also die sache mit autoincrement hab ich schon durch.
        meine dbtabelle hat eine spalte ID mit autoincrement.
        das problem:
        ich weiß ja die id vorher nicht weil die erst mit dem schreiben eines neuen DS in die tabelle erzeugt wird.
        ich müßte also hergehen und wiederum die id des lastinserts auslesen, dann die bestellnummern-variable mit der rowID ergänzen und den DS updaten.
        somit hab ich immer zwei querries und das will ich mir ersparen!

        deswegen will ich's vorher machen.
        die lösung mit der random von php gefällt mir auch nicht recht.

        kannst du mir ein bsp. mit time() posten?
        $PHP resource 4ever$

        Comment


        • #5
          Du musst nur den Datensatz zuerst einfügen.
          Danach kannst du doch mit mysql_insert_id() die ID herausbekommen.

          Beispiel:
          PHP Code:
          mysql_query("INSERT INTO auftraege (kdnr,auftragsdatum,etc) VALUES ('Kundennummer', 'Auftragsdatum','etc')");
          $auftragsnummer mysql_insert_id();
          // Auftrag mit der Nummer $auftragsnummer weiterverarbeiten. 
          So musst du es machen, wenn dein Script anders aufgebaut ist, solltest Du das ändern.
          [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
          [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
          [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

          © Harald Schmidt

          Comment


          • #6
            hmm,
            ich will mir aber zwei queries ersparen.
            => siehe letztes posting von mir!

            muss doch elegant in "einem aufwaschen" gehen!
            $PHP resource 4ever$

            Comment


            • #7
              Zum Einfügen eines Datensatzes brauchst du nur eine Query.
              Entweder du wirst konkreter und postest deine Struktur und was du vorhast oder eben nicht.
              [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
              [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
              [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

              © Harald Schmidt

              Comment


              • #8
                hier ist mein orig-script:
                hab's mit dem time-wert gemacht.
                nur die ID des DS ist zuwenig. muss schon eine lange nummer sein. deswegen setzt sie sich ja grundsätzlich aus datum,zeit und faktorX zusammen.

                code:
                $date = date("Y-m-d");
                $time = date("H:i:s");

                $bestnr1 = str_replace("-", "", $date);
                $bestnr2 = str_replace(":", "", $time);
                $bestnr3 = time();

                $bestnr_all = $bestnr1.$bestnr2.bestnr3;

                $blub = mysql_query("INSERT INTO tabellenname (DATEmm,TIMEmm,ORDERNRmm) values ('$date','$time','$bestnr_all')");

                ist's so eindeutig?
                Last edited by Metallica; 22-11-2002, 09:03.
                $PHP resource 4ever$

                Comment


                • #9
                  Wieso fährst du nach China wenn du nach Rom willst.

                  Mach es doch nicht komplizierter als es ist.

                  Ich habe auch schon einen Shop geschrieben und mache es genauso wie Troublegum es geschrieben hat. Es gibt keine andere Lösung.

                  Beispiel:
                  User legt sich ein Artikel in den Warenkorb.
                  Hier kannst du schon die Rechnungsnummer fest gelegen.
                  Hier bei brauchst du aber auch einen zweiten Query um an die Rechnungsnummer zukommen, zu weiter verarbeiten.

                  Oder:
                  User klickt auf Bestellen und jetzt wird die Rechnungsnummer erst festgelegt.
                  Aber jetzt musst du dir mit einem zweite Query die Nummer aus der Datenbank holen. Um sie weiter verarbeiten zukönnen.

                  Du siehst egal wie, du brauchst immer zwei Querys.
                  *winks*
                  Gilbert
                  ------------------------------------------------
                  Hilfe für eine Vielzahl von Problemen!!!
                  http://www.1st-rootserver.de/

                  Comment


                  • #10
                    hmm, hast recht.

                    ich dachte halt, dass ich an dieser stelle noch etwas die performance optimieren hätte könnnen.

                    schließlich sind derzeit ca. 3000 DS drinnen und es soll nicht träge werden.

                    ich mach's übrigens so:

                    $lesen = mysql_query("select IDmm, DATEmm, TIMEmm from tabellenname WHERE IDmm=LAST_INSERT_ID()");
                    while($row = mysql_fetch_array($lesen))
                    { $bestnr = $row[IDmm].$row[DATEmm].$row[TIMEmm];
                    $bestnr = str_replace("-","",$bestnr);
                    $bestnr = str_replace(":","",$bestnr);
                    $eintrag = mysql_query(" update tabellenname set DISPONRmm='$bestnr' where IDmm='$row[IDmm]' ");
                    }
                    $PHP resource 4ever$

                    Comment


                    • #11
                      Das ist schnell genug. Den Unterschied merkt man eh nicht, ausser dein MySQL-Server ist nicht localhost!
                      *winks*
                      Gilbert
                      ------------------------------------------------
                      Hilfe für eine Vielzahl von Problemen!!!
                      http://www.1st-rootserver.de/

                      Comment


                      • #12
                        nein. er ist localhost.

                        also lasse ich das script so wie es ist.



                        trotzdem many thanks to all!
                        $PHP resource 4ever$

                        Comment

                        Working...
                        X