Трябва да промените някои от вашите И на ИЛИ и след това да поставите ИЛИ в скоби.
В момента ви трябва едно от $vehicle MATCH, а също и и двете от съвпаденията на $keyword. Вместо това мисля, че искате да изисквате някое от $vehicle or $keyword съвпада.
Освен това мисля, че можете да комбинирате съвпаденията на $keyword в едно извикване на MATCH, нали? И мисля, че проверката на LIKE срещу T.truck_number е излишна, като се има предвид MATCH, който включва тази колона. В който случай можете да напишете този раздел от SQL като:
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' ))
Включвам и задължителния коментар за защита срещу SQL инжектиране чрез избягване на динамичния SQL, който създавате.