Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dlaczego LAST_INSERT_ID() nie dziala ?
luckyluc
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.04.2006

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


Od kilku dni nie moge poradzic sobie z funkcja last_insert_id(). Ostatnio sprawdzilem w phpmyadmin i okazuje sie, ze przy ponizszym zapytaniu wyswietlaja sie wszystkie rekordy, a powinien tylko jeden. Ostatni! Dlaczego ?


SELECT * FROM dokumenty WHERE dokumenty_id=last_insert_id(dokumenty_id)

Ten post edytował luckyluc 11.11.2006, 18:58:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
wijet
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Łódź

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


Powinno być tak
  1. SELECT * FROM dokumenty WHERE dokumenty_id = LAST_INSERT_ID()

wyświetli dane dla ostatniego dodanego id.


--------------------
Go to the top of the page
+Quote Post
luckyluc
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.04.2006

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


Cytat(wijet @ 11.11.2006, 16:33:05 ) *
Powinno być tak
  1. SELECT * FROM dokumenty WHERE dokumenty_id = LAST_INSERT_ID()

wyświetli dane dla ostatniego dodanego id.



Ehh, takiego rozwiazania tez probowalem. Niestety pojawia sie komunikat: MySQL zwrocil pusty wynik (zero rekordow). Nie rozumiem dlaczego. Moze ktos wyjasnic jak korzystac z tej funkcji, bo w manualu jest bardzo skromny opis.
Go to the top of the page
+Quote Post
wijet
post
Post #4





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Łódź

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


A czy tabela ma pole z atrybutem auto_increment?, funkcja LAST_INSERT_ID() tego wymaga
najlepiej pokaz zapytania insert i select.

Ten post edytował wijet 11.11.2006, 19:10:34


--------------------
Go to the top of the page
+Quote Post
PiotrLegnica
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 6.07.2005
Skąd: Legnica

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


LAST_INSERT_ID() zwraca ostatnią wartość auto_increment z danej sesji (połączenia). Jeśli chcesz wybrać ostatni rekord to możesz zrobić
  1. SELECT * FROM dokumenty ORDER BY dokumenty_id DESC LIMIT 1

albo
  1. SELECT * FROM dokumenty WHERE dokumenty_id = MAX(dokumenty_id)


--------------------
SithTemplate
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: 19.08.2025 - 15:36