Bạn cần thay đổi một số AND của mình thành OR và sau đó đặt dấu ngoặc đơn cho OR.
Ngay bây giờ, bạn yêu cầu một trong các TRẬN ĐẤU $ xe và cả cả hai trong số các kết quả phù hợp từ khóa $. Thay vào đó, tôi nghĩ bạn muốn yêu cầu bất kỳ một trong số $ phương tiện hoặc $ đối sánh từ khóa.
Ngoài ra, tôi nghĩ rằng bạn có thể kết hợp các kết hợp từ khóa $ thành một lệnh gọi MATCH, phải không? Và tôi nghĩ rằng kiểm tra LIKE đối với T.truck_number là dư thừa với MATCH bao gồm cột đó. Trong trường hợp đó, bạn có thể viết phần SQL đó dưới dạng:
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' ))
Và tôi bao gồm nhận xét bắt buộc về việc bảo vệ bạn chống lại việc tiêm SQL bằng cách thoát SQL động mà bạn tạo.