![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 121 Pomógł: 4 Dołączył: 9.06.2007 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Zastanawiam się czy przez MySQL jestem w stanie coś takiego zrobić czy większą część pracy zrobić w PHP. Mam tablicę o X-ilości. W tablicy tej znajdują się indeksy, np:
Mam tabelę o strukturze: id (int), price (float), name (varchar) i pozostałe pola (varchar/text/int i wiele innych - łącznie ok 30). Ale całość tyczy się "ID" normalny SQL jest taki:
Co prawda ciut bardziej udziwniony, bo jeszcze pobieranie obrazków itd - ale można do niego uprościć. Są 3 sortowania: Price ASC/DESC Name ASC/DESC None - w ogóle brak szyfrowania Teraz jest jednak "drobna" zmiana i powinno być sortowanie domyślne za pomocą: 'Ilość wystąpień danego ID' DESC Czyli przykładowo: 990,993 (bo oba są 2x i dalej: ),56,65,258 Rozważam aby zrobić coś takiego za pomocą PHP, coś na zasadzie: - tworzę tablicę z ID, sortowaną po ilości wystąpień - wybieram odpowiednie ID (limit zamiast w mysql będzie w php) - sortuję wg kolejności z tablicy - zwracam Czy jednak coś takiego jesteśmy w stanie zrobić za pomocą MySQL? Będzie to w miarę szybko działać? -------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zaczęłabym od poprawienia struktury bazy, o tak to głupiego robota.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 121 Pomógł: 4 Dołączył: 9.06.2007 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
co byś zaproponował?
ewentualnie który artykuł polecasz do poczytania. Bo jest ich wiele, i sporo z nich jest absolutnie nic nie warta ![]() Ten post edytował grzemach 30.06.2015, 22:33:56 -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 178 Pomógł: 49 Dołączył: 16.04.2012 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Twoja tabela powinna mieć listy identyfikatorów w osobnej tabeli.
Zachowując obecną strukturę, możesz to zliczyć w następujący sposób:
Lub jeżeli zawsze masz minimum jeden identyfikator to nieco prościej:
Ten post edytował Tuminure 1.07.2015, 13:05:05 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przechowanie idList w formie ciągu liczb to najgorsza praktyka jaka mozna sobie wyobraszić. Potrzebujesz osobnej tabeli gdzie będziesz miał relację miedzy Twoim rekordem a tymi id (dla każdego id osobny rekord w tej tabeli). Wtedy w bazie jest porządek edycja jest banalna i Twój problem tez robi się banalny.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:07 |