MySQL のストアド プロシージャに問題があります。PHP コードから呼び出す必要があります (コードから直接 select を使用することはできません)。プロシージャはフォームからパラメーターを受け取ります。そのパラメーターは、文字列または数値 (ユーザーが入力を入力した場合) または null (ユーザーが入力を空白のままにした場合) です。
このコードを作成しましたが、機能せず (手順と変数名はスペイン語です)、エラーも表示されませんでした。
DELIMITER $$
CREATE PROCEDURE ps_BusquedaVarParam
(IN nombre varchar(30), apellidos varchar(50), minEdad int, maxEdad int)
BEGIN
SELECT * FROM alumnos WHERE
(nombre is null or Nombre = nombre) and
(apellidos is null or Apellido = apellidos) and
(minEdad is null or Edad>=minEdad) and
(maxEdad is null or Edad<=maxEdad);
END $$
DELIMITER ;