Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> tylko 4 wiersze flagą 'polecane'
Black-Berry
post 1.05.2008, 17:14:17
Post #1





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Mam bazę danych z produktami (100 wpisów). Wśród nich chcę aby tylko wybrana ilość (np 4) były zaznaczone jako 'polecany'.

Można to oczywiście zrobić kilkoma zapytaniami. Ale czy jest może sposób na skrócenie procedury tak aby zaznaczenie wiersza jako 'polecany' opuszczało wcześniej podniesioną flagę na innym produkcie ?

W niektórych przypadkach chciałbym aby tylko jeden produkt miał podniesioną flagę 'reklamowany'. Może na jeden wpis są jakieś specjalne funkcje MySQL ?


--------------------
Go to the top of the page
+Quote Post
Cezar708
post 1.05.2008, 17:16:14
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


  1. SELECT *
  2. FROM produkty WHERE plecamy=true
  3. LIMIT 4


zauważ szczególnie to LIMIT

Pozdrawiam
Go to the top of the page
+Quote Post
Black-Berry
post 1.05.2008, 17:38:13
Post #3





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Sory, niejasno się wyraziłem. Mój błąd. Chodzi mi o ustawienie tylko 4 produktów a nie wybranie. Chce aby zawsze maksymalna ilość produktów zaznaczonych jako 'polecane' nie przekraczała 4.


--------------------
Go to the top of the page
+Quote Post
Cezar708
post 1.05.2008, 17:50:21
Post #4





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


a chcesz aby zabezpieczenie było ustawione na bazie (wyzwalacze) czy w kodzie PHP?

Jeśli pierwsza opcja musiałbyś podać jakiej bazy używasz
Go to the top of the page
+Quote Post
nevt
post 1.05.2008, 18:07:45
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


twój problem wynika z błędnych założeń w projekcie bazy. skoro potrzebujesz, żeby wybrana grupa produktów była wyróżniona, to nienajlepszym pomysłem jest dodawanie pól-flag typu 'polecany' 'reklamowany' (dla 99% danych będą puste ...).

sugeruję, żebyś założył dwie dodatkowe tabele, np. polecane_produkty i reklamowane_produkty, dowiązane kluczem obcym, np. id_produktu, do tabeli produkty. taka konstrukcja rozwiązuje twoje problemy z kontrolą ilości oflagowanych produktów. dużo prostsze są też operacje polegające na zmianie wyróżnionych produktów.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
Black-Berry
post 1.05.2008, 18:21:53
Post #6





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Dodatkowe tabele komplikują za to inne rzeczy takie jak wyszukiwanie... musiałbym wtedy wykonywać zapytanie do 3 tabel. Poza tym zależy mi na uniwersalnym rozwiązaniu bo może okazać się że flag będzie więcej (np 5). Musiałbym wtedy Twożyć aż 6 tabel. Trzeba jednak przyznać, że sposób z dodatkowymi tabelami ma swoje zalety neistety w moim przypadku napewno się nie sprawdzi.

Ten post edytował Black-Berry 1.05.2008, 19:33:46


--------------------
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 05:30