Я пытаюсь реализовать фильтр в jTable . Вот демонстрация jTable Filtering Demo .
Я использовал код jQuery, предоставленный демо, чтобы успешно отправлять данные POST в скрипт listAction php. Я обращаюсь к этим данным и присваиваю их переменной $ filter. Я также добавляю две подстановочные знаки до и после строки, чтобы сообщить MySQL выполнить полный поиск, а не индексный поиск.
$filter = '%'; $filter .= $_POST['name']; $filter .= '%'; $startIndex = $_GET['jtStartIndex']; $pageSize = $_GET['jtPageSize']; $sorting = $_GET['jtSorting'];
Затем я вызываю хранимую процедуру и передаю каждую переменную. Я удалил фактическую базу данных и имя процедуры, но я убедился, что они верны.
$mysqli->query("USE data;"); $res = $mysqli->query("CALL proced($startIndex, $pageSize, $filter);");
$ res возвращает false здесь.
Вызов хранимых процедур ОПРЕДЕЛЕННО работает, так как у меня есть другие функции, работающие таким образом. У меня есть другие хранимые процедуры, которые просто возвращают от 0 до 9 записей правильно. Вот текущий код хранимой процедуры:
CREATE DEFINER=`root`@`localhost` PROCEDURE `proced`(startIndex INTEGER, pageSize INTEGER, filter VARCHAR(255)) BEGIN SELECT * FROM reports WHERE `new`=0 AND ReportingName LIKE filter ORDER BY idReports ASC LIMIT startIndex, pageSize; END
Передача значений в workbench MySQL работает, и запрос возвращает правильные строки:
call proced( 0, 10, 'Art%' );
Но jTable терпит неудачу с «Произошла ошибка при общении с сервером».
Может кто-то указать мне верное направление?