Кто-нибудь знает, как привести все результаты таблицы mysql, показывать только первый X (скажем, 10), а затем скрывать остальные с помощью jquery? Мне просто нужно знать, как показывать только первые результаты X на одной странице, затем остальные на отдельной странице с использованием href.
Моя цель – показать только первые 10 результатов, но предоставить ссылку внизу страницы, чтобы пользователь мог показать все результаты. Думал, что гиперссылка может просто повторно выполнить запрос, но подумала, что было бы проще показать / скрыть использование jquery.Thanks
На самом деле вы ищете Pagination. Есть несколько полезных плагинов jQuery paginations:
Или используя PHP:
Вместо использования jquery вы можете использовать MySQL для получения только желаемых результатов.
SELECT * FROM TableName LIMIT 10
Это заработает первые 10 результатов. Затем, чтобы отобразить следующие 10 на следующей странице,
SELECT * FROM TableName LIMIT 10 OFFSET 10
и следующая страница
SELECT * FROM TableName LIMIT 10 OFFSET 20
Если вы используете PHP, вы можете построить свой запрос, чтобы показать правильные результаты в зависимости от того, на какой странице вы находитесь:
// $currentPage is set elsewhere in the script, and is zero-based. $resultsPerPage = 10; $currentOffset = $resultsInPage * $currentPage; $query = "SELECT * FROM TableName LIMIT $resultsInPage OFFSET $currentOffset";
Вам нужно разбивать страницы на какой-нибудь учебник, чтобы сделать это. есть много примеров кода, на которые нужно делать googling
вот несколько ссылок
Это может быть «проще», но гораздо менее ресурсоэффективно загружать все данные (а затем, по желанию, показать их) в том виде, в котором вы описываете.
Я бы рекомендовал использовать несколько запросов (возможно, через Ajax / lazy loading), а не использовать подход, который вы обсуждаете.
Я бы сделал это с помощью инструкции LIMIT в Select-statement вашего SQL-запроса. В большинстве случаев нет необходимости отправлять все данные клиенту, а затем позволять javascript скрывать данные, которые вы не хотите показывать.