Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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
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ą (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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ę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Może jeszcze ktoś coś podpowie (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) i postaram się napisać jak mi to wyszło (o ile coś wymyślę ciekawego i działającego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )

pozdrawiam
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 03:40