![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 20.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam !
Otóż natknąłem się na mały problem, jak mam bazę MySQL a w niej tabele z rekordami z której po usunięciu powiedzmy rekordu o numerze "4" zostaje pustka jest tak ...1.2.3.5.6... i mimo auto-numerowania pustka ta nie jest wypełniana następnymi rekordami. Jak można temu zaradzić ? Z góry dziękuję za pomoc. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Można uzupełnić, ale po co?
-------------------- 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 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie ma sensu zachowywać ciągłości idków w bazie, jednak jednym z rozwiązań mógłby być odpowiedni trigger ustawiony na operację delete w bazie, który przenumerowałby idki. Tylko tu należy zwrócić uwagę na tabele powiązane danym kluczem obcym i raczej w przypadku rozbudowanych relacji nie będzie proste napisanie stosownego triggera, a i pewnie trzeba byłoby użyć tabel tymczasowych.
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 20.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Gdyż te wszystkie rekordy są pytaniami, gdy jej wywołuje ID jest numerem pytania i nie estetycznie wygląda pytanie nr: 3 a po nim nr:5.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
To pobierz tylko ilość wszystkich rekordów i (wszystkie IDKI?) i ustal pozycję bieżącego ID w danej puli, następnie wyświetl jedynie pozycję IDKA w zbiorze.
Ten post edytował darko 7.02.2010, 16:49:09 -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 20.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ok, dzięki tak zrobię
![]() ![]() Dzięki |
|
|
![]()
Post
#7
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Możesz też po każdym usunięciu rekordu użyć:
Kod ALTER TABLE nazwa_tabeli AUTO_INCREMENT=1;
-------------------- 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 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 495 Pomógł: 2 Dołączył: 5.02.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Robisz tak. ID z autonumerownaiem przyspiesza wyuszukiwanie danych w danej tabeli więc tego sie nie pozbywaj. Stwórz kolejną kolumne np. o nazwie NUMER.
1. Dodawanie rekordu Pobierz MAX(numer) z tabeli z pytaniami dla danej póli. Podczas dodawania nowego rekordu ustal numer jako +1 względem pobranej wartości. 2. Usuwanie rekordu Po usunięciu pobierz rekordy z danej puli sortując je według numeru rosnąco i kolejno aktualizuj podając kolejne numer. Dodatkowo można stworzyć dwie funkcje jedną dla przesunęcia pytania w góre, drugą dla przesunięica pytania w dół. -------------------- Programista Stron i Serwisów WWW oraz Aplikacji Internetowych
Specjalista ds. Pozycjonowania Aplikacji Internetowych Copywriter |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 11:23 |