Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Produkty w sklepie, Kolejność wyświetlania
-Lifo-
post
Post #1





Goście







Witam.

Jak rozwiązać następujący problem.

Chciałbym w swoim sklepie mieć wpływ na kolejność wyświetlania produktów na stronie.
Wprowadziłem sobie dodatkowe pole w bazie (`kolejnosc` INT) i przydzielam poprostu numerek dla poszególnego produktu. To jest jasne i oczywiste.
Ale ilość produktów systematycznie rośnie i powoli staje się to uciążliwe bo trzeba jakoś to ogarniać i pamiętać żeby się nie zdublować lub coś w ten deseń.

Dajmy na to mam produkty:


produkt kolejność
prod1 ............. 1
prod2 ............. 2
prod3 ............. 3
prod4 ............. 4
prod5 ............. 5
prod6 ............. 6

I teraz zamarzy mi się że prod6 ma się wyświetlać jako trzeci

prod1 ............. 1
prod2 ............. 2
prod3 ............. 6
prod4 ............. 4
prod5 ............. 5
prod6 ............. 3

W takim przypadku muszę pamiętać żeby zamienić kolejność dla dwóch produktów.

Czy można w jakiś sposób to zautomatyzować, żeby zmiana w jednym rekordzie automatycznie przeliczyła prawidłowo wszystkie produkty po zmianie ?

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





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Dla mnie to trochę nielogiczne. Czemu nie możesz sortować po ID, po nazwie i używać normalnie np.:

  1. ... ORDER BY `pole` ASC


lub DESC ?


--------------------
Go to the top of the page
+Quote Post
nithajasz
post
Post #3





Grupa: Zarejestrowani
Postów: 230
Pomógł: 27
Dołączył: 27.05.2008
Skąd: Warszawa

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


Ja to był zrobił tak :

  1. UPDATE tabela SET kolejnosc = kolejnosc + 1 WHERE kolejnosc >= zmiana;
  2. UPDATE tabela SET kolejnosc = zmiana WHERE id = id_zmienianego;


Zapewne da się to zrobić jednym zapytaniem chociażby przez JOIN..

Ten post edytował nithajasz 10.06.2008, 10:36:43
Go to the top of the page
+Quote Post
-Lifo-
post
Post #4





Goście







-> sniezny_wilk

Czasami proste rzeczy nie wystarczają smile.gif
A na poważnie chcę mieć wpływ na wyświetlanie kolejności a nie tworzyć potworki znane z ogłoszeń
"Aaaaaaaaaaaabsolutnie tani Lanos powypadkowy"

Czasami kolejność ma znaczenie a przy "nastu" stronach z wynikami smile.gif to jest nawet dość ważne jeżeli chcesz żeby pewne produkty pojawiały się na początku przygody z dajmy na to kategorią produktową.

->nithajasz

Ilość zapytań mnie nie interesuje bo to raczej sporadyczna sprawa będzie (poprostu jest z gatunku uciążliwych dla mnie smile.gif ). Ale dziękuję za podpowiedź - pokombinuje w tym kierunku.
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #5





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


No dobra jak chcesz tak kombinować.. ale powiedz co się stanie jak będą dwie 6 np ? Sortuje po kolumnie z kolejnością i dwie szóstki są pod sobą. Wg mnie trochę przekombinowane.. Do tego możesz sortować po nazwie, po dodanym ID (jeśli masz autoincrementa) itp, jest wiele rozwiązań.


--------------------
Go to the top of the page
+Quote Post
-Lifo-
post
Post #6





Goście







--> sniezny_wilk

Wiem że to nie jest "chyba "proste ale mogę załozyć unikalność na to pole co pozwoli mi uniknąć dubli.
Gorzej tylko z tym, że teraz jak się zastanawiam to podany przykład będę musiał chyba przerobbić bo zmiana niekoniecznie musi być o jedną pozycję smile.gif

Może jeszcze ktoś coś podpowie winksmiley.jpg

Pozdrawiam
Go to the top of the page
+Quote Post
nithajasz
post
Post #7





Grupa: Zarejestrowani
Postów: 230
Pomógł: 27
Dołączył: 27.05.2008
Skąd: Warszawa

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


No ja podałem Ci działający przykład ze zmianą o jedną pozycję ale przerobić go na zmianę o wiele pozycji to nie jest problem smile.gif
Go to the top of the page
+Quote Post
-Lifo-
post
Post #8





Goście







--> nithajasz
Obiecuje, że posiedze dziś wieczorem nad tym smile.gif i postaram się napisać jak mi to wyszło (o ile coś wymyślę ciekawego i działającego smile.gif )

pozdrawiam
Go to the top of the page
+Quote Post

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 Aktualny czas: 22.08.2025 - 09:55