Tôi có một chọn nơi như truy vấn cho một hình thức Kết đó là như sau:PHP SQL SELECT nơi như mục tìm kiếm với nhiều từ
<?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");
}
Vấn đề của tôi là nếu ai đó tìm kiếm ví dụ cho "quả táo và lê "Tôi không nhận được bất kỳ kết quả nào có chứa bất kỳ từ nào, tôi chỉ có thể làm cho nó trả về kết quả (cũng 1 kết quả) với tất cả các từ trong đó.
Có ai có thể giúp tôi thực hiện tìm kiếm này thêm một chút nữa không? Cảm ơn trước.
Tim, cảm ơn! Tôi mất khoảng 30 phút để chơi nó, tôi đã sao chép trang của mình để kiểm tra, không thể giải thích tại sao nó không hoạt động, kiểm tra mọi thứ, sau đó nhận ra dreamweaver đã thêm "2" vào cuối mục nhập của tôi Tên!!! grrr. Tôi đã đổi nó thành OR và nó hoạt động một giấc mơ! Cảm ơn bạn. Bây giờ chỉ cần tắt để tìm một hàm để loại bỏ các từ dừng. Cảm ơn sự giúp đỡ của bạn !! :) – Dan
Đối với bất kỳ ppl laravel đọc này kiểm tra này ra: https://gist.github.com/clouddueling/4967617 –
Tôi chỉ cần thêm rằng khi sử dụng chế độ OR bắt buộc phải bao gồm toàn bộ điều kiện truy vấn bên trong dấu ngoặc đơn() vì bất ngờ kết quả có thể xảy ra (mặc dù bạn sẽ không biết rằng bởi vì sẽ không có lỗi MySQL cho mỗi se). Tôi nhận được kết quả từ các danh mục không liên quan, ngay cả khi danh mục cụ thể được chỉ định trong điều kiện AND riêng biệt. Ví dụ, thay thế ở trên trong câu trả lời của Tim: implode ('OR', $ searchTermBits) một phần với '('. Implode ('OR', $ searchTermBits). ')' – dev101