Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Wyszukiwarka wg gatunku

Napisany przez: trebron 2.08.2022, 13:16:39

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.

  1. if ($_GET["gat"] == 1){
  2. $addparam .= "gat=1&";
  3. $wherea[] = "gat1 = 'Akcja' || gat2 = 'Akcja' || gat3 = 'Akcja'";
  4. }

Wybór w wyszukiwarce:
  1. <select name="gat" style="width: 110px;">
  2. <option value="0" selected="selected">Gatunek</option>
  3. <option value="1"<? http://www.php.net/print($_GET["gat"] == 1 ? " selected" : ""); ?>>Akcja</option>
  4. </select>

Napisany przez: nospor 2.08.2022, 15:46:08

A skad sie wzielo to "Akcja" ?

Tak czy siak, pomijajac te AKCJA, to powinno to wygladac poprostu tak

  1. if (!http://www.php.net/empty($_GET["gat"])){
  2. $addparam .= "gat=" . (int)$_GET["gat"];
  3. $wherea[] = "gat1 = 'Akcja' || gat2 = 'Akcja' || gat3 = 'Akcja'";
  4. }

I juz, zadne 1000 linii nie potrzeba. oczywiscie moze sie to troche zmienic jesli ta AKCJA jest jakos dynamiczna

Napisany przez: trebron 2.08.2022, 23:21:26

"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.

Napisany przez: gino 3.08.2022, 06:46:59

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.

Napisany przez: trebron 3.08.2022, 07:54:50

Cytat(gino @ 3.08.2022, 07:46:59 ) *
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.

Tak jestem zielony i nie rozumiem, dlatego proszę o pomoc smile.gif Chcę dodać w wyszukiwarce wybor jak na screenie https://i.imgur.com/25FjBxI.png
Czyli powinno wyglądać to w ten sposób bez wpisywania gatunku?
  1. if (!http://www.php.net/empty($_GET["gat"])){
  2. $addparam .= "gat=" . (int)$_GET["gat"];
  3. $wherea[] = "gat1 = '' || gat2 = '' || gat3 = ''";
  4. }



Napisany przez: trueblue 3.08.2022, 07:59:19

https://helion.pl/pobierz-fragment/cwac16/pdf

Napisany przez: trebron 3.08.2022, 08:23:23

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.

Napisany przez: viking 3.08.2022, 08:42:44

A czemu tego nie zrobiłeś jak człowiek z relacjami?
filmy -> id_filmu
gatunki -> id_gatunku
filmy_gatunki -> id_filmu, id_gatunku

Napisany przez: trebron 3.08.2022, 09:07:43

Tak było od wielu lat, ja tego nie robiłem smile.gif. 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.

Napisany przez: nospor 3.08.2022, 09:09:25

To gdzie przechowywane teraz sa gatunki? W jakiejs tablicy? Czy moze co gorsza tylko w tym pole select w formularzu?

Napisany przez: trebron 17.08.2022, 12:07:30

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)