Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql]Ostatnie ID
230005
post
Post #1





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Chodzi mi o wyciągnięcie id rekordu, który został dodany do bazy jako ostatni. To znaczy wiem, że istnieje na to przynajmniej kilka sposobów, ale chodzi mi o następujący przypadek - dajmy na to strona jest bardzo popularna i w jednym momencie zarejestruje się np. 1000 użytkowników (celowo przejaskrawiam winksmiley.jpg ). Mam obiekt zapisujący adres użytkownika do jednej tabeli, inny obiekt zapisuje login i hasło do drugiej tabeli, a pola id obu są powiązane. I chciałbym aby po pierwszym insercie (ten, który zapisuje adres) wyciągnęło się właściwe id, a nie użytkownika który załóżmy zarejestrował się milisekundę później. W takim wypadku funkcje max(), czy last_insert_id() mysqla nie zadziałają w pożądany sposób - wyciągną ostatnie id, ale nie TO id smile.gif. Wiem, że taka sytuacja jest bardzo nieprawdopodobna, ale akurat piszę stronę, która może stać się popularna, więc powinienem to wiedzieć :] . Jest na to jakiś dobry sposób? A może można wyciągnąć ostatnie id, które zostało dodane w ramach transakcji?

Ten post edytował 230005 27.03.2009, 19:05:02
Go to the top of the page
+Quote Post
nexis
post
Post #2





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


mysqli_insert_id" title="Zobacz w manualu PHP" target="_manual - działa bezproblemowo.


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
230005
post
Post #3





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Tak, ale co jeśli ostatnia operacja insert, to będzie insert innego użytkownika?? Wtedy wyciągnie niewłaściwe id.
Go to the top of the page
+Quote Post
PawelC
post
Post #4





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

Ostrzeżenie: (0%)
-----


To pobierz id użytkownika który się właśnie rejestrował. Użyj do tego where nick='cos tam'

Ten post edytował ExPlOiT 27.03.2009, 19:22:03
Go to the top of the page
+Quote Post
230005
post
Post #5





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Dżiz, to takie proste biggrin.gif . W takich momentach czuję się na prawdę głupi. Niech ktoś zamknie temat, bo mi wstyd :/ .
Go to the top of the page
+Quote Post
SzamanGN
post
Post #6





Grupa: Zarejestrowani
Postów: 94
Pomógł: 14
Dołączył: 11.10.2007

Ostrzeżenie: (0%)
-----


Możesz zastosować takie zapytanie:

INSERT INTO `druga_tabela` (`id`,`id_uzytkownika`) VALUES (NULL,(SELECT `id_uzytkownika` FROM `pierwsza_tabela` WHERE `uzytkownik`="Dodany_uzytkownik" LIMIT 1))

zawarte dwa zapytania w jedym.


--------------------
SzamanGN
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 09:53