Witam wszystkich.
Mam pewien problem. W tym momencie moja wyszukiwarka oparta o bazę danych MySQL bazuje na kilku kolumnach. Mianowicie pobiera dane z warunkiem WHERE z jednej tabeli z kilku kolumn:
$pobierz = mysql_query("(SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `zdjecie` FROM cms_sklep_produkty WHERE nazwa LIKE '%{$wynik_filtru}%') UNION ALL (SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `zdjecie` FROM cms_sklep_produkty WHERE tresc LIKE '%{$wynik_filtru}%')
UNION ALL (SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `zdjecie` FROM cms_sklep_produkty WHERE kategoria LIKE '%{$wynik_filtru}%') ORDER BY `id` DESC LIMIT $aktualnie, $na_stronie");
Problem polega na tym, że jeżeli dany wyraz znajduje się w kolumnie tresc, kategoria oraz nazwa to wyniki przy wyświetlaniu się powielają. Jak tego uniknąć?
{
if($wiersz['nazwa'] != '')
{
$wyrazy = substr($wiersz['nazwa'], 0
, 50
).$wyraz[0
]; $wyraz = $wyrazy;
$array = array('','','','','','','','','[small]','[/small]', '[big]','[/big]','[p]','[/p]','','
','','', '','','[hr=([0-9]{1,2}|100)]','[/hr]');
echo ''.$i.'<a style="text-decoration: none;" href="index.php?page=kat&subkat='.$wiersz['kategoria'].'&id='.$wiersz['id'].'"><b>'.zabezpiecz
($wyrazek).'</b></a>'; }
}
Rozwiązane:
$pobierz = mysql_query("(SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `zdjecie` FROM cms_sklep_produkty WHERE nazwa LIKE '%{$wynik_filtru}%' or tresc LIKE '%{$wynik_filtru}%' or kategoria LIKE '%{$wynik_filtru}%') ORDER BY `id` DESC LIMIT $aktualnie, $na_stronie");
Ten post edytował adrianozo 24.06.2012, 11:55:49