![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 2 Dołączył: 3.04.2015 Ostrzeżenie: (0%) ![]() ![]() |
Mój problem polega na tym, że chciałbym sortować listę według id w tabeli i je przy tym wyświetlać. Jednak, dane z mojej listy można usuwać przy pomocy polecenia DELETE, co z kolei tworzy dziury. Czyli mając listę:
1. a 2. b 3. c Chcemy usunąć 'b', co daje nam taki wynik: 1. a 3. c Co zrobić, by sql automatycznie poprawiał id tak, by nie było dziur? W tej chwili moje rozwiązanie to po prostu nie używać id, a jedynie w pętli która wyczytuje dane z listy, dodana jest zmienna $no, o wartości która zwiększa się o jeden z każdym kolejnym wierszem tabeli. Czy macie może jakiś sposób by uniknąć używania "osobnego" numerowania wierszy? Będę bardzo wdzięczny za pomoc. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 270 Pomógł: 184 Dołączył: 7.10.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Najlepiej jak zostawisz to właśnie w taki sposób z tym ze pamiętając aby w id nie podawać $no tylko id z bazy.
Ten post edytował rad11 10.01.2016, 18:54:04 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Z tym, że to powinny być przecież osobne mechanizmy numerowania.
Pętla wyświetlająca dane z bazy jest elementem warstwy prezentacji. Numerek ma tu bardziej walor "estetyczny" niż pragmatyczny. Dane w bazie to warstwa danych (szok, co nie? ![]() A czemu to ważne? Prosty, obrazowy przykład: wyobraź sobie appkę "Dotacje i datki na polityczne dziatki", w której można przekazać darowiznę na partię polityczną wybraną przez siebie. Oczywiście jako programista napisałeś se bota, który wchodzi pod adres http://politycznedziatki.pl/wspomoz/1 i dajesz datek na Twoją Ukochaną Partię… I teraz se pomyśl, że ktoś tę partię usunął z bazy (bo np. nowy admin appki ma inne preferencje polityczne) i teraz 1 oznacza Twoją Znienawidzoną Partię, a Ty tego nie dostrzegłeś i wciąż przelewasz im 20k miesięcznie ![]() Dlatego ID jest unikalne i konkretne ID zawsze powinno wskazywać na ten sam zasób. A jak tego zasobu już nie ma, to ID również nie powinno istnieć. -------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 2 Dołączył: 3.04.2015 Ostrzeżenie: (0%) ![]() ![]() |
@Comandeer
Rozumiem, co znaczy identyfikator, i masz rację, że istnieją powody, dla których nie powinno się ich zmieniać, kiedy w kodzie podajemy statyczne wczytywanie danych z bazy dla jakiegoś id. @rad11 Jeżeli faktycznie dobrym pomysłem jest zostawić to w takiej wersji, to dziękuję, za rady. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 02:16 |