Witam.
Chcę dodać do wyszukiwarki kryterium wyszukiwania wg gatunków muzycznych i filmowych. Problem w tym, że tych gatunków jest ponad 100 i kod zajmował by około 1000 lini. Czy jest możliwość zdefiniować gatunki w inny krótszy sposób niż ten ktory podaję poniżej dla jednego gatunku- Akcja? Dodam, że do każdej pozycji muzycznej czy też filmowej można dodać 3 kategorie i w bazie wystepują jako gat1, gat2, gat3.
if ($_GET["gat"] == 1){ $addparam .= "gat=1&"; $wherea[] = "gat1 = 'Akcja' || gat2 = 'Akcja' || gat3 = 'Akcja'"; }
<select name="gat" style="width: 110px;"> <option value="0" selected="selected">Gatunek</option> <option value="1"<? http://www.php.net/print($_GET["gat"] == 1 ? " selected" : ""); ?>>Akcja</option> </select>
A skad sie wzielo to "Akcja" ?
Tak czy siak, pomijajac te AKCJA, to powinno to wygladac poprostu tak
if (!http://www.php.net/empty($_GET["gat"])){ $addparam .= "gat=" . (int)$_GET["gat"]; $wherea[] = "gat1 = 'Akcja' || gat2 = 'Akcja' || gat3 = 'Akcja'"; }
"Akcja" to jeden z gatunków filmowych a jest ich ponad 100, np komedia, thriller, romans. Kazdy opis filmu może mieć nawet 3 gatunki a gatunek "Akcja" może się znajdować w jednym z tych 3 gatunków. Do kazdego gatunku muszę utworzyć kod podobny do tego ktory podałem lub Ty podałeś dla gatunku "Akcja" więc dla wszystkich gatunków bedzie kilkaset lini kodu. Stąd moje pytanie czy nie da się tego uprościć w jakiś sposób, np żeby w skrypcie wszystkie gatunki wpisać w jednej linii a nie dla każdego gatunku osobno.
Przypuszczam, że jest to jakaś baza danych, to albo jest źle zrobiona, albo Ty czegoś nie rozumiesz. Podajesz gatunek a zapytanie oddaje Ci wszystkie filmy spełniające ten warunek. Kilkanaście linii kodu, bez żadnych pośrednich tablic czy sklejania zmiennych.
if (!http://www.php.net/empty($_GET["gat"])){ $addparam .= "gat=" . (int)$_GET["gat"]; $wherea[] = "gat1 = '' || gat2 = '' || gat3 = ''"; }
https://helion.pl/pobierz-fragment/cwac16/pdf
Nie rozumiecie mnie. Nie mam w bazie zrobionej tabeli z gatunkami. W bazie z filmem czy muzyką są dodane gatunki w formie tekstu https://i.imgur.com/WwFkjDj.png i aby ten film czy muzyka został odnaleziony to chyba trzeba wpisać w kodzie gatunek.
A czemu tego nie zrobiłeś jak człowiek z relacjami?
filmy -> id_filmu
gatunki -> id_gatunku
filmy_gatunki -> id_filmu, id_gatunku
Tak było od wielu lat, ja tego nie robiłem . Wiec innego sposobu nie ma, trzeba by dodać gatunki do bazy i wtedy wyszukiwanie po id, w przeciwnym wypadku trzeba by pisać za duzo linijek a to odpada.
To gdzie przechowywane teraz sa gatunki? W jakiejs tablicy? Czy moze co gorsza tylko w tym pole select w formularzu?
Tylko w formularzu, ale teraz juz wiem, że trzeba gatunki utworzyć w bazie aby mozna było wg nich wyszukiwać.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)