Mam select gdzie podobne zapytania dotyczącego postaci wyszukiwanego brzmi następująco:PHP SQL SELECT gdzie jak szukanej z wieloma słowami
<?php
$bucketsearch = sanitizeone($_POST["bucketsearch"], "plain");
$bucketsearch = strip_word_html($bucketsearch);
?>
if(isset($_POST['search'])){
$result=MYSQL_QUERY("SELECT * FROM buckets where bucketname like '%$bucketsearch%' order by bucketname");
}else{
$result=MYSQL_QUERY("SELECT * FROM buckets order by bucketname");
}
Moim problemem jest to, że jeśli ktoś szuka na przykład dla „jabłka i gruszki "Nie dostaję żadnych wyników, które zawierają którekolwiek ze słów, mogę tylko sprawić, by zwracał wyniki (1 wynik) ze wszystkimi słowami w nim zawartymi.
Czy ktoś może mi pomóc w dokonaniu tego wyszukiwania nieco bardziej uniwersalnie? Z góry dzięki.
Tim, dziękuję! Zajęło mi to około 30 minut grania, skopiowałem moją stronę, żeby ją przetestować, nie mogłem zrozumieć, dlaczego to nie działa, dużo sprawdzenia wszystkiego, potem zrealizowałem dreamweaver dodał "2" do końca mojego wejścia Nazwa!!! grrr. Zmieniłem go na OR i to marzenie! Dziękuję Ci. Teraz wyłącz, aby znaleźć funkcję usuwania słów zatrzymania. Dziękuję za pomoc !! :) – Dan
Dla każdego lawla ppl czytanie to sprawdzić: https://gist.github.com/clouddueling/4967617 –
Dodam tylko, że przy użyciu trybu OR konieczne jest zamknięcie całego warunku zapytania wewnątrz nawiasów(), ponieważ nieoczekiwane wyniki mogą się zdarzyć (chociaż nie wiesz tego, ponieważ nie będzie błędu MySQL per se). Dostałem wyniki z niespokrewnionych kategorii, nawet jeśli określona kategoria została określona w oddzielnym warunku AND. Na przykład zamień powyższe w odpowiedzi Tim: implode ('OR', $ searchTermBits) część z '('. Implode ('OR', $ searchTermBits). ')' – dev101