if
может быть только утверждением: вы используете его как выражение . Он ничего не возвращает, и его нельзя использовать в другом выражении.
Однако вы можете использовать троичный оператор, чтобы сделать именно это:
. ( isset ($_POST['idSearch']) ? " WHERE a.id = " . $_POST['idSearch'] : '')
Это говорит "если установлено $_POST['idSearch']
, добавьте эту строку, в противном случае добавьте пустую строку.
Обратите внимание, что вы действительно должны взглянуть на свой код, потому что в самом коде, который я выложил выше, есть явная инъекция SQL. Любой может выполнить произвольный код в вашей базе данных. Обязательно очистите ваш ввод и, желательно, примите подготовленные операторы и параметризованные запросы, чтобы сделать ваш код более безопасным.