Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Porządkowanie danych w tablicach/tabelach
php__amator
post
Post #1





Grupa: Zarejestrowani
Postów: 217
Pomógł: 1
Dołączył: 26.05.2011
Skąd: Moon

Ostrzeżenie: (10%)
X----


Dobry wieczór wszystkim,

Po zakończeniu codziennych obowiązków usiadłem do klawiatury, żeby zadać kolejną porcję
mniej lub bardziej beznadziejnych pytań.
Dzisiaj dotyczyć będą możliwości porządkowania danych w bazach.

Co nieco już wiem ale nigdzie nie znalazłem informacji jak porządkować dane - jeśli wogóle ktokolwiek to robi.
Mam na myśli sytuację w której np zostaną usunięte rekordy. Siłą rzeczy powstają "dziury" pomiędzy rekordami.
Czy można te dziury w jakiś sposób usunąć przez np przesunięcie istniejących danych lub czy istnieje polecenie
wypełniające te wolne miejsca - w sensie naprawiające kolejność.
Czy to wogóle potrzebne ?
czy nie przeszkadzają one podczas wykonywania operacji na danych ?
Jakiś czas temu robiłem prostą wybieraczkę ze stronicowaniem I np przeglądanie rekord po rekordzie działało poprawnie tylko jeśli kolejność tychże była zachowana.
Jeśli np zmieniłem sposób odczytywania z bazy np według jakiegokolwiek innego element niz ID wszystko się sypało I otwieranie kolejnych stron stawało się zupełnie bez sensu
ponieważ pokazywało całkiem inne rekordy (IMG:style_emoticons/default/smile.gif)
Tak wiem, dzisiaj już wiem, że to jakaś bzdura była I padnie pytanie co za głąb coś takiego wymyślił (IMG:style_emoticons/default/smile.gif)
A to własnie Ja (IMG:style_emoticons/default/smile.gif)
Sposób generowania linków do kolejnych rekordów był tak idiotyczny że sam się sobie dziwię (IMG:style_emoticons/default/wink.gif)
Z drugiej strony przestaję się dziwić kiedy pomyślę jaka byłą moja wiedza na ten temat. To cud, że wogóle działało (IMG:style_emoticons/default/smile.gif)
Krok po kroku, uczę się, dowiaduję nowych rzeczy ale temat o który pytam pozostaje zagadką.
W zasadzie po części odpowiedziałem już sobie na pytanie bo w sumie jeśli operuje się na id określonych rekordów to "naprawianie" dziur nie ma chyba sensu.
bo niby po co to robić.
A jeśli jakimś cudem coś lub ktoś spróbuje odczytać rekord którego niema ?

Więc jak ?
Jest taka potrzeba czy nie ?
Jeśli jest to jak to zrobić ?
Jakiego polecenia użyć ?
Jak powinna wyglądać składnia takiego zapytania/polecenia ?
Jeśli koniecznie chciałbym w jakiś półautomatyczny sposób wypełniać te luki to czy jest jakiś sposób aby je wyszukiwać I automatycznie je uzupełniać ?

dziękuję za ewentualne p/odpowiedzi

Pozdrawiam

phpamator



Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Dziury w numeracji ID autoincrement to normalna sprawa i nie ma co sie nimi przejmowac.

Jesli zas robiles stronicowanie i wychodzila ci kaszana, to nie wina dziur, a twojego skryptu. Stronicowanie robi sie przy uzyciu bazy z LIMIT i tam nie ma zadnego problemu z dziurami bo stronicowane sa rekordy a nie wartosci pokolei 1,2,3,4,5....
Go to the top of the page
+Quote Post
ctom
post
Post #3





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

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


Cytat(phpamator @ 14.12.2013, 01:54:12 ) *
A jeśli jakimś cudem coś lub ktoś spróbuje odczytać rekord którego niema ?


powyższe pytanie jest jedynym nad którym powinieneś się pochylić i znaleźć rozwiązanie

Go to the top of the page
+Quote Post
php__amator
post
Post #4





Grupa: Zarejestrowani
Postów: 217
Pomógł: 1
Dołączył: 26.05.2011
Skąd: Moon

Ostrzeżenie: (10%)
X----


Cytat(ctom @ 14.12.2013, 10:15:26 ) *
powyższe pytanie jest jedynym nad którym powinieneś się pochylić i znaleźć rozwiązanie


Pochylał się nie będę (IMG:style_emoticons/default/smile.gif) ale rozwiązanie znajdę.
(IMG:style_emoticons/default/smile.gif)


Cytat(nospor @ 14.12.2013, 10:11:06 ) *
Dziury w numeracji ID autoincrement to normalna sprawa i nie ma co sie nimi przejmowac.

Jesli zas robiles stronicowanie i wychodzila ci kaszana, to nie wina dziur, a twojego skryptu. Stronicowanie robi sie przy uzyciu bazy z LIMIT i tam nie ma zadnego problemu z dziurami bo stronicowane sa rekordy a nie wartosci pokolei 1,2,3,4,5....


Owszem, samo stronicowanie nie ale linki które generowałem odwoływały się do stron i wyglądało to mniej więcej tak: http://adres.costam/page?= numer rekordu jtóry w przypadku "dziur" trochę się gubił (IMG:style_emoticons/default/smile.gif) a jeszcze śmieszniej działo się gdy lista tworzona była nie wg id tylko np którejś innej kolumny (IMG:style_emoticons/default/smile.gif)
dlatego pokazywalo mi bzdury aaale to już historia (IMG:style_emoticons/default/smile.gif) (IMG:style_emoticons/default/smile.gif)


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





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

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


Cytat(phpamator @ 14.12.2013, 11:53:40 ) *
Pochylał się nie będę (IMG:style_emoticons/default/smile.gif) ale rozwiązanie znajdę. (IMG:style_emoticons/default/smile.gif)


no to pewnie za jakiś czas pewnie Twoje kolejne pytanie będzie w stylu "... jakimś cudem coś lub ktoś skasowało mia dane w bazie" (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
php__amator
post
Post #6





Grupa: Zarejestrowani
Postów: 217
Pomógł: 1
Dołączył: 26.05.2011
Skąd: Moon

Ostrzeżenie: (10%)
X----


(IMG:style_emoticons/default/smile.gif) eee, nie (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 15.09.2025 - 05:54