Saya memperbarui situs web quadcopter saya dan meningkatkan sistem pencarian saya. Saat ini pengguna hanya dapat mencari berdasarkan model quadcopter. Saya sekarang sedikit memperbaikinya sehingga pengguna dapat mencari merek atau modelnya.
Saya ingin pengguna dapat mengetikkan merek dan model ke dalam kolom pencarian, dan mengizinkan kedua kata tersebut diperiksa di antara salah satu catatan di DB.
Pada dasarnya, katakanlah merek quadcopter adalah "DJI" dan modelnya adalah "Phantom", dalam database saya satu akan disimpan di bawah merek 'kolom' dan yang lainnya di bawah 'model'. Saya ingin pengguna dapat mengetik 'dji phantom' dan modelnya muncul.
Jika ini tidak memungkinkan, apakah ada cara agar hasilnya terlihat meskipun tidak tepat? Dengan kolom pencarian saya saat ini Anda dapat mencari quadcopter asalkan berisi seluruh bagian string. Misalnya, 'plant' akan menampilkan "DJI Phantom" begitu pula 'anton'
Inilah pertanyaan saya:
$search = $_GET['search'];
$search_list = mysqli_query($conn,"SELECT * FROM quads WHERE model LIKE '%$search%' OR brand LIKE '%$search%'");
PS (Saya tahu ini rentan terhadap suntikan; ini yang saya perbaiki minggu ini, terima kasih).
DJI Phantom
tidak akan mencocokkan model atau merek. Bisakah Anda membagi teks pencarian dan kemudian mencoba melihat apakah ada kecocokan di DB? - person Maximus2012   schedule 14.11.2016CONCAT
untuk menambahkan kondisi pencarian lain selain yang sudah Anda miliki? stackoverflow.com/questions/303679/ Meskipun berhasil, ini hanya akan berfungsi untuk kasus tertentu ketika pengguna memasukkan sesuatu sepertiDJI Phantom
tetapi itu akan menjadi awal yang baik. - person Maximus2012   schedule 14.11.2016CONCAT
tetapi melakukan pekerjaan menyisipkan daripada memilih adalah membuat kolomsearch_string
dengan merek dan model dan mungkin nomor seri. Terkadang saya juga melihat sebagian pertandingan yang diantisipasi ditambahkan. Kemudian Anda juga bisaexplode(' ', $search)
jika ingin menguji token di string pencarian secara mandiri. - person Jerry   schedule 14.11.2016