Anda perlu mengubah beberapa AND menjadi OR, lalu mengkurung OR.
Saat ini Anda memerlukan salah satu dari $vehicle MATCH dan juga keduanya dari $keyword yang cocok. Sebaliknya, saya pikir Anda ingin meminta salah satu dari $vehicle atau $kecocokan kata kunci.
Juga, saya pikir Anda dapat menggabungkan kecocokan $keyword menjadi satu panggilan MATCH, bukan? Dan saya pikir pemeriksaan LIKE terhadap T.truck_number berlebihan mengingat MATCH yang menyertakan kolom itu. Dalam hal ini Anda dapat menulis bagian SQL tersebut sebagai:
AND (MATCH( T.truck_number, T.make, T.model, T.engine, T.vin_number,
T.transmission_number, T.comments) AGAINST( '$vehicle' )
OR MATCH( P.part_num, P.part_desc, P.part_ref,M.comments, M.work_done)
AGAINST( '$keywords' ))
Dan saya menyertakan komentar wajib tentang melindungi diri Anda dari injeksi SQL dengan keluar dari SQL dinamis yang Anda buat.