![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 2.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Pisze sobie pewien skrypt, który bazuje na bazach danych MySQL. Skrypt ma byc pewnego rodzaju systemem newsow. Zatrzymałem się jednak na pewnym problemie, któego nie potrafie rozwiązać. Otóż: Czy jest jakaś funkcja, opcja, cokolwiek co pozwalałoby mi na zidentyfikowanie numeru ID danego rekordu w tabeli MySQL przed dodaniem tego rekordu? Kolumna ID jest uzupełniania automatycznie (auto_increment) w tabeli. Do czego mi to potrzebne? Otóż chce dodać do newsa zdjęcie. Przynależność zdjęcia rozpoznawana jest w tabeli po unikatowym numerze ID danego newsa. Żeby dodać zdjęcie/a przed dodaniem danego newsa potrzebuje numeru jego ID. Jakieś sugestie? Odsyłacze do konkretnych kursów, działów kursów? Nie oczekuje gotowców, a raczej wskazówek ![]() Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 389 Pomógł: 141 Dołączył: 11.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
O to chodzi http://pl2.php.net/manual/en/function.mysql-insert-id.php ?
Ten post edytował athei 11.02.2010, 21:48:46 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 2.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
No wlasnie przy auto_increment jest drobny problem, bo jak dodam +1 do poprzedniego ID to nie zawsze będzie to prawdą, gdyż w momencie kiedy usunę dany rekord i dodam kolejny zostanie mu nadany numer z pominięciem tego ID który został usunięty.
Przykład: Id 1 Id 2 Id 3 - Kasuje Dodaje nowy rekord Otrzymuje: Id 1 Id 2 Id 4 - to ten rekord ktory dodalem ![]() Juz sprawdzam linka, ktorego mi podaleslales. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 389 Pomógł: 141 Dołączył: 11.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jest jeszcze jedno rozwiązanie:
Kod $sql = "SHOW TABLE STATUS LIKE 'nazwa_tabeli'";
$result = mysql_query($sql); $row = mysql_fetch_array($result); $next_id = $row['Auto_increment']; |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 2.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Obydwie odpowiedzi bardzo mi pomogły.
Przy pierwszej, stworzyłem sobie nową tabele, gdzie przy dodawaniu nowego rekordu updatuje numer ostatniego ID. Tutaj jest sens dodania do podanej liczby 1, bo ten numer zawsze bedzie najwiekszy ![]() Drugi można by powiedzieć robi to samo, tylko od razu podaje następny numer ID przy dodaniu kolejnego rekordu i jest to na pewno sposób wygodniejszy ![]() Dziekuje bardzo za pomoc ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Jeżeli chcesz uzyskać ostatni numer ID, to:
Mam ten sam problem, numeruję tutoriale i nie mogę polegać na ID ze względu na dziury po usunięciu rekordów. Mam do tego dodatkową kolumnę, gdzie trzymam numer przypisany do tutoriala, zgodny z numerem katalogu z plikami do tutoriala. -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 02:43 |