Похоже, вы выполняете нумерацию страниц на стороне php, а не на стороне javascript.Это означает, что вы должны аналогичным образом упорядочить столбцы на стороне php - нажатие на заголовок должно вызвать новый вызов getBooks с другим предложением ORDER BY.
Так что функция sortTable () должна бытьВызов ajax на сервер, где снова выполняется «getBooks» с ORDER BY, продиктованным тем, какой заголовок был нажат (и если порядок возрастает или уменьшается).Если пользователь нажимает на заголовок «Книги», запрос выглядит следующим образом:
$query = "SELECT Library.nameOfBook, userBook.book_id, userBook.user_id FROM loginUser JOIN userBook JOIN Library ON userBook.user_id = loginUser.id AND userBook.book_id = Library.id WHERE loginUser.username=:username LIMIT $sql_start, $sql_limit ORDER BY nameOfBook " //add DESC if necessary
РЕДАКТИРОВАТЬ:
Краткое объяснение:
КогдаРазбивая таблицы, вы можете сделать это либо на стороне клиента (в данном случае javascript), либо на стороне сервера (в данном случае php).
Выполнение действий на стороне клиента будет означать, что вы получите все данные с сервера (так что всекниги в библиотеке), вероятно, как объект JSON (может быть XML или что-то еще), а затем вы генерируете таблицу из этих данных в Javascript, ограничивая количество книг на странице, но позволяя вам получить доступ к другим книгам, потому что у вас естьвсе данные в руки.Это означало бы не использовать «LIMIT» в запросе SQL, потому что вы отправляете все.Это имеет то преимущество, что ограничивает количество обращений к серверу (если это проблема), но может означать, что при обработке большого количества данных на клиентской стороне будет много проблем.
В качестве альтернативы, нумерация страниц выполняетсясторона php.В этом случае запрос будет включать LIMIT, чтобы данные оставались небольшими, но вы, вероятно, также захотите отправить клиенту полное количество записей, чтобы можно было рассчитать количество страниц (это можно сделать с помощью SQL_CALC_FOUND_ROWS).Из javascript вы отправляете AJAX-запрос на сервер для данных.Вот некоторые ресурсы:
AJAX: https://www.w3schools.com/xml/ajax_intro.asp
https://www.tutorialspoint.com/ajax/index.htm
SQL_CALC_FOUND_ROWS: https://dev.mysql.com/doc/refman/8.0/en/information-functions.html#function_found-rows
JSON формат: https://www.w3schools.com/js/js_json_intro.asp
Запрос ajax переходит на страницу php, которая выполняет запрос sql и возвращает данные.Данные могут быть объектом (скорее всего, JSON) или напрямую HTML-таблицей.Первый лучше всего подходит для больших проектов, но второй может быть быстрее.Как только сервер отправит обратно данные, вы отобразите их (либо путем создания таблицы в Javascript из объекта JSON, либо путем простой вставки HTML-кода, если вы этого добились).
Извините, если этовозможно, большая работа, чем вы изначально планировали.