![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 101 Pomógł: 0 Dołączył: 20.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Potrzebuję pomysłu jak zrobić sortowanie wyników. Przyjmijmy że mamy bazę danych o nazwie "lista" a w niej tabele: -temat -tresc -sort Teraz przyjmijmy że mamy rekordy: (temat | tresc | sort) A | aa | 1 B | bb | 2 C | cc | 3 D | dd | 4 Teraz chciałbym aby temat D był pierwszy wyświetlany więc baza powinna wyglądać tak: D | dd | 1 A | aa | 2 B | bb | 3 C | cc | 4 Skrypt musi umożliwiać przesuwanie względem siebie wiele elementów. Chciałbym żeby "D" było pierwsze a "B" ostatnie. Wówczas baza musiała by wyglądać tak: D | dd | 1 A | aa | 2 C | cc | 3 B | bb | 4 Proste sortowanie nie robi problemu (góra/dół) ale jeżeli chcemy jednocześnie zmienić kilka kolejności wymaga to lepszego pomysłu. Ktoś coś poradzi? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 101 Pomógł: 0 Dołączył: 20.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to żeby sortowanie było zapisane w mysql. Zmiana rekordów w tabeli "sort". Witam, Potrzebuję pomysłu jak zrobić sortowanie wyników. Przyjmijmy że mamy bazę danych o nazwie "lista" a w niej tabele: -temat -tresc -sort Teraz przyjmijmy że mamy rekordy: (temat | tresc | sort) A | aa | 1 B | bb | 2 C | cc | 3 D | dd | 4 Teraz chciałbym aby temat D był pierwszy wyświetlany więc baza powinna wyglądać tak: D | dd | 1 A | aa | 2 B | bb | 3 C | cc | 4 Skrypt musi umożliwiać przesuwanie względem siebie wiele elementów. Chciałbym żeby "D" było pierwsze a "B" ostatnie. Wówczas baza musiała by wyglądać tak: D | dd | 1 A | aa | 2 C | cc | 3 B | bb | 4 Proste sortowanie nie robi problemu (góra/dół) ale jeżeli chcemy jednocześnie zmienić kilka kolejności wymaga to lepszego pomysłu. Ktoś coś poradzi? Podałem to na przykładach wyżej. W 1 przykładzie ustawiam D jako pierwszy więc rekord sort zmienia się następująco: 4 na 1 1 na 2 2 na 3 3 na 4 Zaś w 2 przykładzie gdzie ustawiam D i B rekord sort w mysql musi się zmienić: 4 na 1 1 na 2 3 pozostaje niezmienione 4 na 1 Kombinacji jest sporo więcej bo im więcej mamy wpisów w mysql tym więcej możliwości konfiguracji. Nie mam zbytnio pomysłu jak wykonać sortowanie wg. widzi mi się ![]() Najprościej zrobić to na zasadzie góra/dół wówczas zmieniamy ze sobą wartości sort tylko 2 wpisów. Jednak jak mamy np. 40 wpisów i chcielibyśmy posegregować je wszystkie wg. swojego upodobania. To raczej takie rozwiązanie byłoby czasochłonne. Ten post edytował gandziorz 27.11.2015, 21:46:09 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 10 Dołączył: 13.02.2007 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
IF .... a potem sortowanie po nim.
SELECT *, IF (temat = "A", 0, IF (temat = "D", 2, 1)) AS sort FROM ... ORDER BY sort DESC/ASC.. Ja bym tak to zrobił. Ale dziwne takie sortowanie... -------------------- Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 101 Pomógł: 0 Dołączył: 20.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Twój problem jest raczej po stronie front-endu z tego co piszesz. Do bazy idzie zapytanie z nową wartością dla pola odpowiadającego za sortowanie i tyle. To jakiś mechanizm po stronie klienta musi nadawać odpowiednie cyferki, zależnie od tego jak sobie posortujesz.
Ten post edytował Damonsson 28.11.2015, 21:54:31 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 05:49 |