![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 24.04.2014 Ostrzeżenie: (0%) ![]() ![]() |
Cześć wszystkim,
mam tabelę w bazie danych (przykładowa): ID, Name, Order, Visible: 1, pierwszy, 1, 1 3, drugi, 4, 1 4, trzeci, 2, 1 7, czwarty, 8, 1 27, piąty, null, 0 Funkcjonalność polega na tym, że na stronie wyświetlane są informacje z rekordów w kolejności według kolumny "Order" od 1 do +~ jeżeli w kolumnie Visible jest wartość 1. Jednak, w niektórych przypadkach np. usunięcia rekordu ze środka tabeli, powstaje luka (tak jak w przykładowej bazie) gdzie prawidłowa kolumna "Order" powinna zawierać wszystkie liczby od 1 do ~ czyli 1, 2, 3, 4, 5, itd., a nie 1, 3, 4, 8 itd. (brakuje 2, 5, 6, 7). Dodatkowa sprawa, że niektóre rekordy w kolumnie Order nie mają wartości (wartość null), ponieważ nie są widoczne na stronie. Potrzebuje stworzyć zapytanie do bazy, które np. w przypadku usunięcia rekordu ze środka tabeli, zaktualizuje wartości w kolumnie Order od 1 do +~ dla wszystkich rekordów, które w kolumnie Order nie mają wartości null, i w obecnej kolejności według kolumny Order. Próbowałem napisać takie zapytanie (nawet na razie pominąłem fakt, żeby ominąć rekordy z wartością null w kolumnie Order, i w kolejności według order) lecz nawet to nie udaje mi się. Byłbym bardzo wdzięczny za pomoc. EDIT. Ta funkcjonalność ma zastosowanie w systemie CMS, który sam piszę, dla ustawiania widoczności i kolejności wyświetlania podstron (zmiana kolejności podstron odbywa się poprzez zapytanie, które aktualizuje kolumnę Order o 1 w górę lub 1 w dół, (w zależności od kierunku) oba rekordy, które zapytanie dotyczy) Ten post edytował gausek90 24.04.2014, 19:31:57 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 264 Pomógł: 54 Dołączył: 31.08.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 550 Pomógł: 75 Dołączył: 5.06.2012 Skąd: Lębork Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat piszę od ręki i nie wiem czy zadziała. Nie zadziala.... order to nazwa zastrzezona i trzeba koniecznie brac ją `` gdy ktos mial fantazje i tak nazwal kolumnePoza tym 1 to liczba a nie tekst wiec pisze sie 1 a nie '1' @gausek90 wydaje mi się, iż poszedles troche w zlym kierunku. Powstanie luki nie powinno mieć zadnego znaczenia dla mechanizmu sortowania. Rozumiem, ze masz blad dlatego, ze podczas zmiany miejsc zawsze przesuwasz o 1. I tu wydaje mi sie masz blad. Podczas zmiany miejsc powinienies zmieniac miejscami dwa sąsiadujace ze sobą elementy i nie zakladac na sztywno, ze roznica kolejnosci miedzy nimi wynosi 1. To tutaj powinienies poprawc mechanizm i nie zawracac sobie glowy lukami -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 24.04.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wam za pomoc. Udało mi się napisać działający skrypt
![]() Pozdrawiam serdecznie |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:13 |