The text input names don’t match the $_POST keys you are looping. Using [] in the input name attribute is for handling multiple inputs, not multiple keys.
Try replacing name="search[batch_no]"
and name="search[rfid_chip_no]"
with simply name="search_batch_no"
and name="search_rfid_chip_no"
and looping $_POST
instead of $_POST["search"]
.
Also you need to check the conditions match, as only code
and category
are matched in your input processing, there is no sign of batch_no
or rfid_chip_no
, so I have no idea how it could be ‘working locally’ unless it is simply selecting all records locally because the query condition is ignored.