Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Zmiana kolejności wyświetlanych rekordów
perhydrol
post 30.09.2009, 09:42:08
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.12.2006

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


Witam,

mam problem, może nie jest to trudne ale nie potrafię sobie wymyślić dobrego sposobu na rozwiązanie następującego problemu.

Posiadam bazę danych a w niej przykładową tabelę, wymyśloną na potrzeby przykładu:


  1. id_item | name_item | price_item | ....
  2.  
  3. 1 | Coś_1 | 20 | ....
  4. 2 | Coś_2 | 10 | ....
  5. 3 | Coś_3 | 40 | ....
  6. 4 | Coś_4 | 20 | ....
  7. 5 | Coś_5 | 30 | ....
  8.  


oczywiście na pole "id_item" autoincrement, z jasnych przyczyn nie chcę zmieniać wartości tego pola
więc wymyśliłem aby dodać dodatkowe pole w tabeli dzięki któremu będzie można zmieniać kolejność wyświetlania się poszczególnych rekordów pole np. "show_item" autoincrement (choć nie koniecznie)

  1. id_item | name_item | price_item | SHOW_ITEM | ....
  2.  
  3. 1 | Coś_1 | 20 | 1 | ....
  4. 2 | Coś_2 | 10 | 2 | ....
  5. 3 | Coś_3 | 40 | 3 | ....
  6. 4 | Coś_4 | 20 | 4 | ....
  7. 5 | Coś_5 | 30 | 5 | ....
  8.  


Rekordy z tej tabeli mają się domyślnie wyświetlać -ostatnio dodanych 6 (no chyba że zostanie zmieniona kolejność po przez modyfikację pola "show_item")
więc:
  1. SELECT * FROM "tabela_items" WHERE "show_item" <> 0 ORDER BY "show_item" DESC LIMIT 6

(w zapytaniu warunek WHERE "show_item" <> 0, ponieważ usuwanie wybranych rekordów odbywa się na zasadzie ustawienia pola "show_item" = 0)

czyli, zakładając ze tabela "tabela_items" posiada 30 rekordów (od Coś_1 do Coś_30) w chwili obecnej:

1. Coś_30
2. Coś_29
3. Coś_28
4. Coś_27
5. Coś_26
6. Coś_25

wszystko wydaje mi się proste gdy chcę zmienić kolejność wybranego rekordu i ustawić go na pierwszej pozycji (ostatnich 6-ciu dodanych), zwiększając po prostu pole "show_item" o +1 od największego.

Moje pytanie jak to rozwiązać jeśli chciał bym dokonać zmiany wybranych rekordów np. questionmark.gif questionmark.gif

z

1. Coś_30
2. Coś_29
3. Coś_28
4. Coś_27
5. Coś_26
6. Coś_25

na

1. Coś_30
2. Coś_20
3. Coś_28
4. Coś_27
5. Coś_14
6. Coś_25

(nie wiem czy to coś zmienia ale interesuje mnie zmiana kolejności 6-ciu wyświetlanych elementów, domyślnie 6-ciu ostatnio dodanych)

Ten post edytował perhydrol 30.09.2009, 10:12:05
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 20:11