SELECT cms_page.id, cms_plaintext.text FROM cms_page, cms_plaintext WHERE cms_page.id=cms_plaintext.tid AND ( cms_page.template_dir = "'.$url_szablonu['pop'].'" OR cms_page.template_dir = "'.$url_szablonu['rock'].'" OR cms_page.template_dir = "'.$url_szablonu['hiphop'].'" OR cms_page.template_dir = "'.$url_szablonu['techno'].'" OR cms_page.template_dir = "'.$url_szablonu['klasyka'].'" ) AND ( ) cms_plaintext.hid='artysta' AND cms_plaintext.text LIKE "%'.addslashes($_GET['q']).'%" ) OR ( cms_plaintext.hid='tytul' AND cms_plaintext.text LIKE "%'.addslashes($_GET['q']).'%" ) ) ORDER BY cms_plaintext.text ASC
Błąd w tym zapytaniu występuje w tym miejscu:
{ ( cms_plaintext.hid='artysta' AND cms_plaintext.text LIKE "%'.addslashes($_GET['q']).'%" ) OR ({ cms_plaintext.hid='tytul' AND cms_plaintext.text LIKE "%'.addslashes($_GET['q']).'%" ) )
Tabela cms_plaintext ma takie pola:
HID - jego wartością jest rodzaj tekstu jaki znajduje się w polu TEXT
Zapytanie ma wyglądać w ten sposób, aby wybrał te rekordy w których HID=artysta i TEXT zawierał odpowiene słowo wpsane w formularzu lub HID=tytul i TEXT zawierał odpowiene słowo wpsane w formularzu
Ty zapytanie wywala taki błąd
Kod
You have an error in your SQL syntax near '{ cms_plaintext.hid="nowosci_artysta" and cms'
Jeśli w zapytaniu użyje tylko jednego warunku
cms_plaintext.hid='tytul' AND cms_plaintext.text LIKE "%'.addslashes($_GET['q']).'%"
a nie dwóch, czyli kod wyglądałby tak:
SELECT cms_page.id, cms_plaintext.text FROM cms_page, cms_plaintext WHERE cms_page.id=cms_plaintext.tid AND ( cms_page.template_dir = "'.$url_szablonu['pop'].'" OR cms_page.template_dir = "'.$url_szablonu['rock'].'" OR cms_page.template_dir = "'.$url_szablonu['hiphop'].'" OR cms_page.template_dir = "'.$url_szablonu['techno'].'" OR cms_page.template_dir = "'.$url_szablonu['klasyka'].'" ) AND cms_plaintext.hid="'.$hid_artysta.'" AND cms_plaintext.text LIKE "%'.addslashes($_GET['q']).'%" ORDER BY cms_plaintext.text ASC
to wtedy wyświetla prawidłowe wyniki, oczywiście bez tego drugiego warunku