Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Ostatnie ID z tabeli
wbeatn
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 7.05.2007

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


Robię galerię. Chciałbym aby każde nowe dodane zdjęcie do bazy, w tabeli miało nazwę odpowiadająca jego ID. Czyli jeśli zdjęcie jest z wiersza o ID 24 to w rubryce FILE_NAME ma być 24.jpg

Aby to uzyskać chcialem przy wykonywaniu skryptu, aby pobieralo ostatnie najwyzsze ID z tabeli i po dodaniu 1 utworzyło wymaganą nazwę pliku.

  1. $cid=mysql_query("SELECT USER_ID FROM gzdjecia ORDER BY USER_ID DESC LIMIT 0,1");
  2. echo $cid;


  1. $cid=mysql_query("SELECT max(USER_ID) FROM gzdjecia");
  2. echo $cid;


Niestety oba powyższe wyświetlają mi 'Resource id #13' ....

  1. $cid=mysql_query("SELECT * FROM gzdjecia ORDER BY USER_ID DESC LIMIT 0,1");
  2. echo $cid['USER_ID];


... taki nie wyświetla kompletnie nic.

Co robię źle ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wbeatn
post
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 7.05.2007

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


Cytat(phpion @ 22.08.2013, 07:32:02 ) *
Rozwiązanie podane przez ~gitbejbe wykrzaczy się na banalnym przypadku. Przypuśćmy, że ID ostatniego użytkownika to 10. Z jakiegoś powodu go kasujesz, więc aktualnie największe ID to 9. Dodajesz nowego użytkownika - otrzymuje on ID 11, a fotka (czy co tam masz) ID 10 (9 + 1). W tym momencie numeracja użytkownik-fotka całkowicie Ci się rozjeżdża.


Tak! Nie pomyślałem o tym mimo iż możliwość usuwania zdjęć jest w kodzie. Dzięki za zwrócenie uwagi, bo użycie pierwotnego sposobu pozbywa tego problemu tylko jeśli zostaną usunięte z bazy wcześniej dodane foty, a nie ta ostatnia.

Cytat(phpion @ 22.08.2013, 07:32:02 ) *
mysql_insert_id jest jedynym prawidłowym rozwiązaniem w tej sytuacji. To, że otrzymujesz 0 wynika pewnie z tego, że wywołujesz tą funkcję przed dodaniem rekordu do bazy, a powinieneś po.


I tutaj także dziękuję. Przetestowałem i działa elegancko.
Wielki + dla Ciebie.

Pozdrawiam

Ten post edytował wbeatn 22.08.2013, 18:33:37
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 16.10.2025 - 00:39