![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Master
![]() Registriert seit: 29.12.2001
Beiträge: 797
|
![]() hallo
habe da ein keines prob habe da ein formualr bei dem sich kunden neu anmelden können name vorname usw. und auch ein passwort feld wenn alle felder ausgefüllt sind wird eine kunden nummer automatisch (id) vergeben (die kann der kunde nicht selber wählen ) in der sql datenbank den id und das passwort benötigt er dann später zum einloggen nur das problem ist dass der kunde seine kunden nr (id) nicht kennt da die ja von der datenbank automatisch erzeugt wird wie soll ich jetzt eine ausgabe (abfrage) machen und dem neuen kunden seine kunden nr zeigen damit er sch später einlogen kann ? gruß fenster |
![]() |
![]() |
![]() |
#2 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() Hi!
Nachdem du deine Insertabfrage ausgeführt hast kannst du die letzte generierte ID auslesen, dies macht man so: zb Insert: INSERT INTO tblUser(Name) VALUES ('Hr. Maier'; Abrufen der ID: SELECT LAST_INSERT_ID( ) Das liefert dir genau einen Wert mit der zuletzt hinzugefügten ID zurück. Eine zweite Variante wäre, dass du einfach den maximalwert der ID auslest, also "Select max(ID) from tblUser" oder "select max(ID) from tblUser WHERE Name='Hr. Maier'" mfg Thomas |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 26.09.1999
Beiträge: 2.569
|
![]() Dazu würde ich mir aber das hier anschauen:
http://dev.mysql.com/doc/mysql/en/Tr..._Commands.html Damit sich nicht zwei gleichzeitig anmelden können, und dann eventuell die falsche id ausgegeben wird. gruss, snowman
____________________________________
MediaMarkt? Ich bin doch nicht blöd, Mann! Vorsprung durch Technik Lesen Sie keine Anleitungen, FAQs, Readme - Files. Reine Zeitverschwendung. In den Newsgroups und Foren gibt es genug kompetente Leute, die mit großer Geduld immer wieder dieselben einfachen Fragen beantworten. Völlig kostenlos noch dazu! |
![]() |
![]() |
![]() |
#4 | |
Master
![]() |
![]() Zitat:
hier nach dem eintragen in die db kannst mit dem code die id abfragen $lastid = mysql_insert_id();
____________________________________
http://www.schmausen.at Dein Infoportal für Mittagsmenüs in Klagenfurt |
|
![]() |
![]() |
![]() |
#5 | |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() Zitat:
Wenn sich zwei Leute zu einem ziemlich genau gleichen Zeitpunkt anmelden kanns es dazu kommen, dass die beiden inserts zum fast gleichen zeitpunkt ausgeführt werden. danach liest du die letzte id aus - dadurch kriegst du dann zweimal die gleiche (letzte) id zurück. Deshalb sollte man das über eine Transaction machen (wusste selber gar nicht das des bei mysql gibt, kenn des nur ms-sql). mfg Thomas |
|
![]() |
![]() |
![]() |
#6 |
Master
![]() |
![]() gut zu wissen... das wusste ich bis jetzt noch nicht.. hab gedacht das es zu diesem problem nicht kommt bei autoincrement
____________________________________
http://www.schmausen.at Dein Infoportal für Mittagsmenüs in Klagenfurt |
![]() |
![]() |
![]() |
#7 | |
Inventar
![]() Registriert seit: 26.09.1999
Beiträge: 2.569
|
![]() Zitat:
gruss, snowman
____________________________________
MediaMarkt? Ich bin doch nicht blöd, Mann! Vorsprung durch Technik Lesen Sie keine Anleitungen, FAQs, Readme - Files. Reine Zeitverschwendung. In den Newsgroups und Foren gibt es genug kompetente Leute, die mit großer Geduld immer wieder dieselben einfachen Fragen beantworten. Völlig kostenlos noch dazu! |
|
![]() |
![]() |
![]() |
#8 |
Master
![]() Registriert seit: 29.12.2001
Beiträge: 797
|
![]() hallo
ich hab das prob so gelöst printf("Ihre Kunden Nr. ist: %d\n", mysql_insert_id()); gruß fenster |
![]() |
![]() |
![]() |
#9 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() @snowman
juhu ich habs verstanden ![]() ![]() @fenster naja, genau das ist es eben nicht. Angenommen du machst zwei inserts fast gleichzeitig, dann ist die last_insert_id die insgesamt letze id. einfaches bsp (timestamp/geschehen): 01: php-script-insert, id wäre 5 02: php-script-liest id aus -> 5 01: php-script-insert (1. user), id wäre 5 02: php-script-insert (2. user), id wäre 6 03: php-script-liest (1. user) id aus -> kriegt 6 04: php-script-liest (2. user) id aus -> kriegt 6 Ich würd sowieso dem kunden einen namen und ein passwort geben und ihm ned die ID geben. Persönlich arbeite ich in php/mysql auch ned mit transactions, da bei mir höchstens jemand der einen neuen Forumthread erstellt zum falschen Thread weitergeleitet wird -> sein Pech. mfg Thomas |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|