{"id":1147,"date":"2015-12-21T20:04:26","date_gmt":"2015-12-21T20:04:26","guid":{"rendered":"https:\/\/www.codexworld.com\/?p=1147"},"modified":"2025-09-16T10:04:02","modified_gmt":"2025-09-16T10:04:02","slug":"pagination-with-jquery-ajax-php-mysql","status":"publish","type":"post","link":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/","title":{"rendered":"Ajax Pagination with PHP and MySQL"},"content":{"rendered":"<p>Pagination is very useful for a data list where a large number of records are listed from the database. It helps to load the dynamic data faster by dividing records into multiple pages. The pagination functionality can be integrated using PHP easily. In <a href=\"https:\/\/www.codexworld.com\/php-pagination-class-with-mysql\/\">PHP Pagination<\/a>, the data is loaded by navigating the links with page reload\/refresh. If you want to improve the UI of the webpage and make the data list user-friendly, Ajax Pagination is the best choice to load data without page refresh.<\/p>\n<p><b>Ajax Pagination<\/b> helps to create pagination links and load dynamic data without page refresh from the database. You can add pagination to the data list without page refresh using Ajax and PHP. In this tutorial, we will show you how to integrate pagination on the web page using jQuery, Ajax, PHP, and MySQL.<\/p>\n<p>In this example we will fetch members&#8217; data from the MySQL database and display it in a table with pagination links. Initially, a limited number of records will be displayed in the table. When you click on the pagination links, the next set of records will be loaded without page refresh. We will use JavaScript to fetch members&#8217; data from the server using Ajax and display it in the table without page reload.<\/p>\n<h2>File Structure<\/h2>\n<p>Before we start the integration process, let\u2019s see the file structure of this Ajax pagination with PHP and MySQL example.<\/p>\n<pre class=\"file-struc\">ajax_pagination_with_php<span style=\"color:#794938\">\/<\/span>\r\n\u251c\u2500\u2500 index.html\r\n\u251c\u2500\u2500 fetch_members.php\r\n\u2514\u2500\u2500 css<span style=\"color:#794938\">\/<\/span>\r\n    \u2514\u2500\u2500 style.css\r\n<\/pre>\n<p>Let&#8217;s start the integration process of pagination in PHP using Ajax and JavaScript.<\/p>\n<h2>Create Database Table<\/h2>\n<p>Create a MySQL database table named <code>members<\/code> to store members&#8217; data. You can use the following SQL query to create the table.<\/p>\n<pre style=\"color: rgb(68, 68, 68);\"><span class=\"hljs-keyword\" style=\"font-weight: 700;\">CREATE<\/span> <span class=\"hljs-keyword\" style=\"font-weight: 700;\">TABLE<\/span> <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`members`<\/span> (\r\n  <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`id`<\/span> <span class=\"hljs-built_in\" style=\"color: rgb(57, 115, 0);\">int<\/span>(<span class=\"hljs-number\" style=\"color: rgb(136, 0, 0);\">11<\/span>) <span class=\"hljs-keyword\" style=\"font-weight: 700;\">NOT<\/span> <span class=\"hljs-literal\" style=\"color: rgb(120, 169, 96);\">NULL<\/span> AUTO_INCREMENT,\r\n  <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`first_name`<\/span> <span class=\"hljs-built_in\" style=\"color: rgb(57, 115, 0);\">varchar<\/span>(<span class=\"hljs-number\" style=\"color: rgb(136, 0, 0);\">25<\/span>) <span class=\"hljs-keyword\" style=\"font-weight: 700;\">NOT<\/span> <span class=\"hljs-literal\" style=\"color: rgb(120, 169, 96);\">NULL<\/span>,\r\n  <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`last_name`<\/span> <span class=\"hljs-built_in\" style=\"color: rgb(57, 115, 0);\">varchar<\/span>(<span class=\"hljs-number\" style=\"color: rgb(136, 0, 0);\">25<\/span>) <span class=\"hljs-keyword\" style=\"font-weight: 700;\">NOT<\/span> <span class=\"hljs-literal\" style=\"color: rgb(120, 169, 96);\">NULL<\/span>,\r\n  <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`email`<\/span> <span class=\"hljs-built_in\" style=\"color: rgb(57, 115, 0);\">varchar<\/span>(<span class=\"hljs-number\" style=\"color: rgb(136, 0, 0);\">50<\/span>) <span class=\"hljs-keyword\" style=\"font-weight: 700;\">NOT<\/span> <span class=\"hljs-literal\" style=\"color: rgb(120, 169, 96);\">NULL<\/span>,\r\n  <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`gender`<\/span> enum(<span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">'Male'<\/span>,<span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">'Female'<\/span>) <span class=\"hljs-keyword\" style=\"font-weight: 700;\">NOT<\/span> <span class=\"hljs-literal\" style=\"color: rgb(120, 169, 96);\">NULL<\/span>,\r\n  <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`country`<\/span> <span class=\"hljs-built_in\" style=\"color: rgb(57, 115, 0);\">varchar<\/span>(<span class=\"hljs-number\" style=\"color: rgb(136, 0, 0);\">20<\/span>) <span class=\"hljs-keyword\" style=\"font-weight: 700;\">NOT<\/span> <span class=\"hljs-literal\" style=\"color: rgb(120, 169, 96);\">NULL<\/span>,\r\n  <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`created`<\/span> datetime <span class=\"hljs-keyword\" style=\"font-weight: 700;\">NOT<\/span> <span class=\"hljs-literal\" style=\"color: rgb(120, 169, 96);\">NULL<\/span>,\r\n  PRIMARY <span class=\"hljs-keyword\" style=\"font-weight: 700;\">KEY<\/span> (<span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`id`<\/span>)\r\n) <span class=\"hljs-keyword\" style=\"font-weight: 700;\">ENGINE<\/span>=<span class=\"hljs-keyword\" style=\"font-weight: 700;\">InnoDB<\/span> <span class=\"hljs-keyword\" style=\"font-weight: 700;\">DEFAULT<\/span> <span class=\"hljs-keyword\" style=\"font-weight: 700;\">CHARSET<\/span>=utf8 <span class=\"hljs-keyword\" style=\"font-weight: 700;\">COLLATE<\/span>=utf8_unicode_ci;<\/pre>\n<p><span class=\"note\">Note:<\/span> Add some dummy records in the <code>members<\/code> table to test the pagination functionality.<\/p>\n<h2>Create Members List Page with Ajax Pagination<\/h2>\n<p>Create an HTML file named <code>index.html<\/code> to list members&#8217; data from the MySQL database with pagination links. In this file, we will create a table to display members&#8217; data and a <code>div<\/code> to display pagination links. We will use JavaScript to fetch members&#8217; data from the server using Ajax and display it in the table without page reload.<\/p>\n<p>Here is the complete code of the <code>index.html<\/code> file. We divide the code into two parts: HTML and JavaScript.<\/p>\n<p><b><u>HTML Code:<\/u><\/b><br \/>\nDefine the HTML structure to display members&#8217; data in a table and pagination links.<\/p>\n<pre style=\"color: rgb(95, 94, 78);\"><span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">div<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\" style=\"color: rgb(125, 151, 38);\">\"container\"<\/span>&gt;<\/span>\r\n    <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">h2<\/span>&gt;<\/span>Members List<span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">h2<\/span>&gt;<\/span>\r\n\r\n    <span class=\"hljs-comment\" style=\"color: rgb(108, 107, 90);\">&lt;!-- Loader --&gt;<\/span>\r\n    <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">div<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\" style=\"color: rgb(125, 151, 38);\">\"loader\"<\/span>&gt;<\/span>Loading...<span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">div<\/span>&gt;<\/span>\r\n\r\n    <span class=\"hljs-comment\" style=\"color: rgb(108, 107, 90);\">&lt;!-- Members table --&gt;<\/span>\r\n    <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">div<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\" style=\"color: rgb(125, 151, 38);\">\"table-responsive\"<\/span>&gt;<\/span>\r\n        <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">table<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\" style=\"color: rgb(125, 151, 38);\">\"members-table\"<\/span>&gt;<\/span>\r\n            <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">thead<\/span>&gt;<\/span>\r\n                <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">tr<\/span>&gt;<\/span>\r\n                    <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">th<\/span>&gt;<\/span>First Name<span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">th<\/span>&gt;<\/span>\r\n                    <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">th<\/span>&gt;<\/span>Last Name<span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">th<\/span>&gt;<\/span>\r\n                    <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">th<\/span>&gt;<\/span>Email<span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">th<\/span>&gt;<\/span>\r\n                    <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">th<\/span>&gt;<\/span>Gender<span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">th<\/span>&gt;<\/span>\r\n                    <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">th<\/span>&gt;<\/span>Country<span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">th<\/span>&gt;<\/span>\r\n                    <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">th<\/span>&gt;<\/span>Created<span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">th<\/span>&gt;<\/span>\r\n                <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">tr<\/span>&gt;<\/span>\r\n            <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">thead<\/span>&gt;<\/span>\r\n            <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">tbody<\/span>&gt;<\/span><span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">tbody<\/span>&gt;<\/span>\r\n        <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">table<\/span>&gt;<\/span>\r\n    <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">div<\/span>&gt;<\/span>\r\n\r\n    <span class=\"hljs-comment\" style=\"color: rgb(108, 107, 90);\">&lt;!-- Pagination links --&gt;<\/span>\r\n    <span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">div<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\" style=\"color: rgb(125, 151, 38);\">\"pagination\"<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\" style=\"color: rgb(125, 151, 38);\">\"pagination\"<\/span>&gt;<\/span><span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">div<\/span>&gt;<\/span>\r\n<span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">div<\/span>&gt;<\/span><\/pre>\n<p><b><u>JavaScript Code:<\/u><\/b><br \/>\nUse JavaScript to fetch members&#8217; data from the server using Ajax and display it in the table without page reload. Also, handle pagination links to navigate through different pages.<\/p>\n<ul>\n<li>The <code>fetchMembers()<\/code> function fetches members&#8217; data from the server for a given page number. The function uses the Fetch API to make an asynchronous request to the server-side script (<code>fetch_members.php<\/code>) and retrieves the data in JSON format. The fetched data is then displayed in the table body, and pagination links are created dynamically based on the total number of pages. Click events on the pagination links are handled to fetch data for the selected page without page reload.<\/li>\n<\/ul>\n<pre style=\"color: rgb(95, 94, 78);\"><span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">script<\/span>&gt;<\/span>\r\n<span style=\"color: rgb(68, 68, 68);\"><span class=\"hljs-comment\" style=\"color: rgb(136, 136, 136);\">\/\/ Fetch members data and handle pagination<\/span>\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\" style=\"font-weight: 700;\">function<\/span> <span class=\"hljs-title\" style=\"color: rgb(136, 0, 0); font-weight: 700;\">fetchMembers<\/span>(<span class=\"hljs-params\">page = 1<\/span>) <\/span>{\r\n    <span class=\"hljs-comment\" style=\"color: rgb(136, 136, 136);\">\/\/ Show loader<\/span>\r\n    <span class=\"hljs-built_in\" style=\"color: rgb(57, 115, 0);\">document<\/span>.getElementById(<span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">'loader'<\/span>).style.display = <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">'block'<\/span>;\r\n    \r\n    <span class=\"hljs-comment\" style=\"color: rgb(136, 136, 136);\">\/\/ Fetch data from server<\/span>\r\n    fetch(<span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">'fetch_members.php?page='<\/span> + page)\r\n    .then(res =&gt; res.json())\r\n    .then(data =&gt; {\r\n        <span class=\"hljs-keyword\" style=\"font-weight: 700;\">const<\/span> tbody = <span class=\"hljs-built_in\" style=\"color: rgb(57, 115, 0);\">document<\/span>.querySelector(<span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">'#members-table tbody'<\/span>);\r\n        tbody.innerHTML = <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">''<\/span>;\r\n        data.members.forEach(m =&gt; {\r\n            tbody.innerHTML += <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`&lt;tr&gt;\r\n                &lt;td data-label=\"First Name\"&gt;<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${m.first_name}<\/span>&lt;\/td&gt;\r\n                &lt;td data-label=\"Last Name\"&gt;<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${m.last_name}<\/span>&lt;\/td&gt;\r\n                &lt;td data-label=\"Email\"&gt;<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${m.email}<\/span>&lt;\/td&gt;\r\n                &lt;td data-label=\"Gender\"&gt;<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${m.gender}<\/span>&lt;\/td&gt;\r\n                &lt;td data-label=\"Country\"&gt;<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${m.country}<\/span>&lt;\/td&gt;\r\n                &lt;td data-label=\"Created\"&gt;<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${m.created}<\/span>&lt;\/td&gt;\r\n            &lt;\/tr&gt;`<\/span>;\r\n        });\r\n\r\n        <span class=\"hljs-comment\" style=\"color: rgb(136, 136, 136);\">\/\/ Pagination with First, Previous, Next, Last<\/span>\r\n        <span class=\"hljs-keyword\" style=\"font-weight: 700;\">let<\/span> pagHtml = <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">''<\/span>;\r\n        <span class=\"hljs-keyword\" style=\"font-weight: 700;\">const<\/span> current = data.current;\r\n        <span class=\"hljs-keyword\" style=\"font-weight: 700;\">const<\/span> totalPages = data.pages;\r\n\r\n        <span class=\"hljs-comment\" style=\"color: rgb(136, 136, 136);\">\/\/ First and Previous<\/span>\r\n        pagHtml += <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`&lt;button <span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${current === 1 ? 'disabled' : ''}<\/span> onclick=\"fetchMembers(1)\"&gt;First&lt;\/button&gt;`<\/span>;\r\n        pagHtml += <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`&lt;button <span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${current === 1 ? 'disabled' : ''}<\/span> onclick=\"fetchMembers(<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${current - 1}<\/span>)\"&gt;Previous&lt;\/button&gt;`<\/span>;\r\n\r\n        <span class=\"hljs-comment\" style=\"color: rgb(136, 136, 136);\">\/\/ Page numbers (show range around current)<\/span>\r\n        <span class=\"hljs-keyword\" style=\"font-weight: 700;\">let<\/span> range = <span class=\"hljs-number\" style=\"color: rgb(136, 0, 0);\">2<\/span>;\r\n        <span class=\"hljs-keyword\" style=\"font-weight: 700;\">let<\/span> start = <span class=\"hljs-built_in\" style=\"color: rgb(57, 115, 0);\">Math<\/span>.max(<span class=\"hljs-number\" style=\"color: rgb(136, 0, 0);\">1<\/span>, current - range);\r\n        <span class=\"hljs-keyword\" style=\"font-weight: 700;\">let<\/span> end = <span class=\"hljs-built_in\" style=\"color: rgb(57, 115, 0);\">Math<\/span>.min(totalPages, current + range);\r\n        <span class=\"hljs-keyword\" style=\"font-weight: 700;\">if<\/span> (start &gt; <span class=\"hljs-number\" style=\"color: rgb(136, 0, 0);\">1<\/span>) {\r\n            pagHtml += <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`&lt;button onclick=\"fetchMembers(1)\"&gt;1&lt;\/button&gt;`<\/span>;\r\n            <span class=\"hljs-keyword\" style=\"font-weight: 700;\">if<\/span> (start &gt; <span class=\"hljs-number\" style=\"color: rgb(136, 0, 0);\">2<\/span>) pagHtml += <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`&lt;span&gt;...&lt;\/span&gt;`<\/span>;\r\n        }\r\n        <span class=\"hljs-keyword\" style=\"font-weight: 700;\">for<\/span> (<span class=\"hljs-keyword\" style=\"font-weight: 700;\">let<\/span> i = start; i &lt;= end; i++) {\r\n            pagHtml += <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`&lt;button <span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${i === current ? 'disabled' : ''}<\/span> onclick=\"fetchMembers(<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${i}<\/span>)\"&gt;<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${i}<\/span>&lt;\/button&gt;`<\/span>;\r\n        }\r\n        <span class=\"hljs-keyword\" style=\"font-weight: 700;\">if<\/span> (end &lt; totalPages) {\r\n            <span class=\"hljs-keyword\" style=\"font-weight: 700;\">if<\/span> (end &lt; totalPages - <span class=\"hljs-number\" style=\"color: rgb(136, 0, 0);\">1<\/span>) pagHtml += <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`&lt;span&gt;...&lt;\/span&gt;`<\/span>;\r\n            pagHtml += <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`&lt;button onclick=\"fetchMembers(<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${totalPages}<\/span>)\"&gt;<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${totalPages}<\/span>&lt;\/button&gt;`<\/span>;\r\n        }\r\n\r\n        <span class=\"hljs-comment\" style=\"color: rgb(136, 136, 136);\">\/\/ Next and Last<\/span>\r\n        pagHtml += <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`&lt;button <span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${current === totalPages ? 'disabled' : ''}<\/span> onclick=\"fetchMembers(<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${current + 1}<\/span>)\"&gt;Next&lt;\/button&gt;`<\/span>;\r\n        pagHtml += <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">`&lt;button <span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${current === totalPages ? 'disabled' : ''}<\/span> onclick=\"fetchMembers(<span class=\"hljs-subst\" style=\"color: rgb(68, 68, 68);\">${totalPages}<\/span>)\"&gt;Last&lt;\/button&gt;`<\/span>;\r\n\r\n        <span class=\"hljs-comment\" style=\"color: rgb(136, 136, 136);\">\/\/ Update pagination<\/span>\r\n        <span class=\"hljs-built_in\" style=\"color: rgb(57, 115, 0);\">document<\/span>.getElementById(<span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">'pagination'<\/span>).innerHTML = pagHtml;\r\n\r\n        <span class=\"hljs-comment\" style=\"color: rgb(136, 136, 136);\">\/\/ Hide loader<\/span>\r\n        <span class=\"hljs-built_in\" style=\"color: rgb(57, 115, 0);\">document<\/span>.getElementById(<span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">'loader'<\/span>).style.display = <span class=\"hljs-string\" style=\"color: rgb(136, 0, 0);\">'none'<\/span>;\r\n    });\r\n}\r\n\r\n<span class=\"hljs-comment\" style=\"color: rgb(136, 136, 136);\">\/\/ Initial fetch on page load<\/span>\r\nfetchMembers();<\/span>\r\n<span class=\"hljs-tag\" style=\"color: rgb(186, 98, 54);\">&lt;\/<span class=\"hljs-name\" style=\"color: rgb(186, 98, 54);\">script<\/span>&gt;<\/span><\/pre>\n<h2>Fetch Members Data from Database<\/h2>\n<p>Create a PHP file named <code>fetch_members.php<\/code> to fetch members&#8217; data from the MySQL database and return it in JSON format. In this file, we will connect to the database, retrieve members&#8217; data based on the requested page number, and return the data along with pagination information.<\/p>\n<ul>\n<li>Set the header for JSON response using <code>header('Content-Type: application\/json');<\/code>.<\/li>\n<li>Define database configuration variables such as host (<code>$dbHost<\/code>), username (<code>$dbUsername<\/code>), password (<code>$dbPassword<\/code>), database name (<code>$dbName<\/code>), and table name (<code>$dbTable<\/code>).<\/li>\n<li>Create a database connection using <code>mysqli<\/code> and check for connection errors.<\/li>\n<li>Get the page number from the query string using <code>$_GET['page']<\/code>. If not set, default to page 1.<\/li>\n<li>Define the number of records to display per page (e.g., 10) in <code>$limit<\/code> variable.<\/li>\n<li>Calculate the offset for the SQL query based on the current page number.<\/li>\n<li>Fetch the total number of records from the database to calculate the total number of pages.<\/li>\n<li>Fetch members&#8217; data for the current page using a SQL query with LIMIT and OFFSET.<\/li>\n<li>Store the fetched data in an array and prepare the response with members&#8217; data, current page, and total pages.<\/li>\n<li>Return the response in JSON format using <code>json_encode()<\/code>.<\/li>\n<\/ul>\n<pre><span style=\"color: #0000BB\">&lt;?php <br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;Set&nbsp;header&nbsp;for&nbsp;JSON&nbsp;response <br \/><\/span><span style=\"color: #0000BB\">header<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">'Content-Type:&nbsp;application\/json'<\/span><span style=\"color: #007700\">); <br \/> <br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;Database&nbsp;configuration <br \/><\/span><span style=\"color: #0000BB\">$dbHost&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #DD0000\">\"localhost\"<\/span><span style=\"color: #007700\">; <br \/><\/span><span style=\"color: #0000BB\">$dbUsername&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #DD0000\">\"root\"<\/span><span style=\"color: #007700\">; <br \/><\/span><span style=\"color: #0000BB\">$dbPassword&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #DD0000\">\"root\"<\/span><span style=\"color: #007700\">; <br \/><\/span><span style=\"color: #0000BB\">$dbName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #DD0000\">\"codexworld_db\"<\/span><span style=\"color: #007700\">; <br \/><\/span><span style=\"color: #0000BB\">$dbTable&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #DD0000\">'members'<\/span><span style=\"color: #007700\">;&nbsp;<\/span><span style=\"color: #FF8000\">\/\/&nbsp;Change&nbsp;to&nbsp;your&nbsp;DB&nbsp;table&nbsp;name&nbsp;from&nbsp;which&nbsp;to&nbsp;fetch&nbsp;records <br \/> <br \/>\/\/&nbsp;Create&nbsp;database&nbsp;connection <br \/><\/span><span style=\"color: #0000BB\">$conn&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;new&nbsp;<\/span><span style=\"color: #0000BB\">mysqli<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$dbHost<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #0000BB\">$dbUsername<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #0000BB\">$dbPassword<\/span><span style=\"color: #007700\">,&nbsp;<\/span><span style=\"color: #0000BB\">$dbName<\/span><span style=\"color: #007700\">); <br \/> <br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;Check&nbsp;connection <br \/><\/span><span style=\"color: #007700\">if&nbsp;(<\/span><span style=\"color: #0000BB\">$conn<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">connect_error<\/span><span style=\"color: #007700\">)&nbsp;die(<\/span><span style=\"color: #DD0000\">\"Connection&nbsp;failed\"<\/span><span style=\"color: #007700\">); <br \/> <br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;Get&nbsp;page&nbsp;number&nbsp;from&nbsp;query&nbsp;string <br \/><\/span><span style=\"color: #0000BB\">$page&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;isset(<\/span><span style=\"color: #0000BB\">$_GET<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #DD0000\">'page'<\/span><span style=\"color: #007700\">])&nbsp;?&nbsp;(int)<\/span><span style=\"color: #0000BB\">$_GET<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #DD0000\">'page'<\/span><span style=\"color: #007700\">]&nbsp;:&nbsp;<\/span><span style=\"color: #0000BB\">1<\/span><span style=\"color: #007700\">; <br \/>if&nbsp;(<\/span><span style=\"color: #0000BB\">$page&nbsp;<\/span><span style=\"color: #007700\">&lt;&nbsp;<\/span><span style=\"color: #0000BB\">1<\/span><span style=\"color: #007700\">)&nbsp;<\/span><span style=\"color: #0000BB\">$page&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">1<\/span><span style=\"color: #007700\">; <br \/> <br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;Number&nbsp;of&nbsp;records&nbsp;per&nbsp;page <br \/><\/span><span style=\"color: #0000BB\">$limit&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">7<\/span><span style=\"color: #007700\">; <br \/> <br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;Calculate&nbsp;the&nbsp;offset&nbsp;for&nbsp;the&nbsp;SQL&nbsp;query <br \/><\/span><span style=\"color: #0000BB\">$offset&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;(<\/span><span style=\"color: #0000BB\">$page&nbsp;<\/span><span style=\"color: #007700\">-&nbsp;<\/span><span style=\"color: #0000BB\">1<\/span><span style=\"color: #007700\">)&nbsp;*&nbsp;<\/span><span style=\"color: #0000BB\">$limit<\/span><span style=\"color: #007700\">; <br \/> <br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;Get&nbsp;total&nbsp;records&nbsp;count <br \/><\/span><span style=\"color: #0000BB\">$totalRes&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$conn<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">query<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">\"SELECT&nbsp;COUNT(*)&nbsp;as&nbsp;cnt&nbsp;FROM&nbsp;<\/span><span style=\"color: #007700\">{<\/span><span style=\"color: #0000BB\">$dbTable<\/span><span style=\"color: #007700\">}<\/span><span style=\"color: #DD0000\">\"<\/span><span style=\"color: #007700\">); <br \/><\/span><span style=\"color: #0000BB\">$totalRow&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$totalRes<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">fetch_assoc<\/span><span style=\"color: #007700\">(); <br \/><\/span><span style=\"color: #0000BB\">$total&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$totalRow<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #DD0000\">'cnt'<\/span><span style=\"color: #007700\">]; <br \/><\/span><span style=\"color: #0000BB\">$pages&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">ceil<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$total&nbsp;<\/span><span style=\"color: #007700\">\/&nbsp;<\/span><span style=\"color: #0000BB\">$limit<\/span><span style=\"color: #007700\">); <br \/> <br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;Fetch&nbsp;records&nbsp;with&nbsp;limit&nbsp;and&nbsp;offset <br \/><\/span><span style=\"color: #0000BB\">$sql&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #DD0000\">\"SELECT&nbsp;*&nbsp;FROM&nbsp;<\/span><span style=\"color: #007700\">{<\/span><span style=\"color: #0000BB\">$dbTable<\/span><span style=\"color: #007700\">}<\/span><span style=\"color: #DD0000\">&nbsp;ORDER&nbsp;BY&nbsp;created&nbsp;DESC&nbsp;LIMIT&nbsp;<\/span><span style=\"color: #0000BB\">$limit<\/span><span style=\"color: #DD0000\">&nbsp;OFFSET&nbsp;<\/span><span style=\"color: #0000BB\">$offset<\/span><span style=\"color: #DD0000\">\"<\/span><span style=\"color: #007700\">; <br \/><\/span><span style=\"color: #0000BB\">$result&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$conn<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">query<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$sql<\/span><span style=\"color: #007700\">); <br \/> <br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;Fetch&nbsp;all&nbsp;records&nbsp;and&nbsp;store&nbsp;in&nbsp;an&nbsp;array <br \/><\/span><span style=\"color: #0000BB\">$members&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;[]; <br \/>while&nbsp;(<\/span><span style=\"color: #0000BB\">$row&nbsp;<\/span><span style=\"color: #007700\">=&nbsp;<\/span><span style=\"color: #0000BB\">$result<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">fetch_assoc<\/span><span style=\"color: #007700\">())&nbsp;{ <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #0000BB\">$members<\/span><span style=\"color: #007700\">[]&nbsp;=&nbsp;<\/span><span style=\"color: #0000BB\">$row<\/span><span style=\"color: #007700\">; <br \/>} <br \/> <br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;Close&nbsp;the&nbsp;database&nbsp;connection <br \/><\/span><span style=\"color: #0000BB\">$conn<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">close<\/span><span style=\"color: #007700\">(); <br \/> <br \/><\/span><span style=\"color: #FF8000\">\/\/&nbsp;Return&nbsp;JSON&nbsp;response <br \/><\/span><span style=\"color: #007700\">echo&nbsp;<\/span><span style=\"color: #0000BB\">json_encode<\/span><span style=\"color: #007700\">([ <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'members'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #0000BB\">$members<\/span><span style=\"color: #007700\">, <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'pages'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #0000BB\">$pages<\/span><span style=\"color: #007700\">, <br \/>&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span style=\"color: #DD0000\">'current'&nbsp;<\/span><span style=\"color: #007700\">=&gt;&nbsp;<\/span><span style=\"color: #0000BB\">$page <br \/><\/span><span style=\"color: #007700\">]); <br \/><\/span><span style=\"color: #0000BB\">?&gt;<\/span><\/pre>\n<p><span class=\"note\">Note:<\/span> Make sure to replace the database configuration variables with your actual database credentials.<\/p>\n<p class=\"seeAlso\"><span><\/span><a href=\"http:\/\/www.codexworld.com\/load-more-data-using-jquery-ajax-php-from-database\">Load more data from Database using jQuery, Ajax and PHP<\/a><\/span><\/p>\n<h2>Conclusion<\/h2>\n<p>In this tutorial, we created a simple web application to display members&#8217; data from a MySQL database with Ajax-based pagination using JavaScript and PHP. The application fetches data asynchronously without page refresh, providing a smooth user experience. You can further enhance this application by adding features like search, sorting, or filtering based on your requirements.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pagination is very useful for a data list where a large number of records are listed from the database. It helps to load the dynamic data faster by dividing records into multiple pages. The pagination <\/p>\n","protected":false},"author":1,"featured_media":5907,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4],"tags":[28,66,19,110,14],"class_list":["post-1147","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-ajax","tag-javascript","tag-mysql","tag-pagination","tag-php","cat-4-id","has_thumb"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ajax Pagination with PHP and MySQL - CodexWorld<\/title>\n<meta name=\"description\" content=\"Ajax Pagination in PHP - Create pagination with Ajax using JavaScript and PHP. Example script to integrate pagination with dynamic data from MySQL database using PHP and Ajax.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ajax Pagination with PHP and MySQL - CodexWorld\" \/>\n<meta property=\"og:description\" content=\"Ajax Pagination in PHP - Create pagination with Ajax using JavaScript and PHP. Example script to integrate pagination with dynamic data from MySQL database using PHP and Ajax.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/\" \/>\n<meta property=\"og:site_name\" content=\"CodexWorld\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/codexworld\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/codexworld\" \/>\n<meta property=\"article:published_time\" content=\"2015-12-21T20:04:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-16T10:04:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/12\/ajax-pagination-with-php-mysql-javascript-codexworld.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"CodexWorld\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@codexworldblog\" \/>\n<meta name=\"twitter:site\" content=\"@codexworldweb\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"CodexWorld\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/\"},\"author\":{\"name\":\"CodexWorld\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#\\\/schema\\\/person\\\/9da51d8fa3cdefeb5ec9c69136d4baf0\"},\"headline\":\"Ajax Pagination with PHP and MySQL\",\"datePublished\":\"2015-12-21T20:04:26+00:00\",\"dateModified\":\"2025-09-16T10:04:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/\"},\"wordCount\":754,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/ajax-pagination-with-php-mysql-javascript-codexworld.jpg\",\"keywords\":[\"Ajax\",\"JavaScript\",\"MySQL\",\"Pagination\",\"PHP\"],\"articleSection\":[\"PHP\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/\",\"name\":\"Ajax Pagination with PHP and MySQL - CodexWorld\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/ajax-pagination-with-php-mysql-javascript-codexworld.jpg\",\"datePublished\":\"2015-12-21T20:04:26+00:00\",\"dateModified\":\"2025-09-16T10:04:02+00:00\",\"description\":\"Ajax Pagination in PHP - Create pagination with Ajax using JavaScript and PHP. Example script to integrate pagination with dynamic data from MySQL database using PHP and Ajax.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/ajax-pagination-with-php-mysql-javascript-codexworld.jpg\",\"contentUrl\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/ajax-pagination-with-php-mysql-javascript-codexworld.jpg\",\"width\":1920,\"height\":1080,\"caption\":\"ajax-pagination-with-php-mysql-javascript-codexworld\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/pagination-with-jquery-ajax-php-mysql\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.codexworld.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ajax Pagination with PHP and MySQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#website\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/\",\"name\":\"CodexWorld\",\"description\":\"Web &amp; Mobile App Development Company\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.codexworld.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#organization\",\"name\":\"CodexWorld\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2014\\\/09\\\/codexworld-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.codexworld.com\\\/wp-content\\\/uploads\\\/2014\\\/09\\\/codexworld-logo.png\",\"width\":200,\"height\":19,\"caption\":\"CodexWorld\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/codexworld\",\"https:\\\/\\\/x.com\\\/codexworldweb\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/codexworld\",\"https:\\\/\\\/www.youtube.com\\\/codexworld\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.codexworld.com\\\/#\\\/schema\\\/person\\\/9da51d8fa3cdefeb5ec9c69136d4baf0\",\"name\":\"CodexWorld\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g\",\"caption\":\"CodexWorld\"},\"description\":\"CodexWorld is a programming blog, one-stop destination for web professionals \u2014 developers, programmers, freelancers, and site owners.\",\"sameAs\":[\"http:\\\/\\\/www.codexworld.com\",\"https:\\\/\\\/www.facebook.com\\\/codexworld\",\"https:\\\/\\\/x.com\\\/codexworldblog\"],\"url\":\"https:\\\/\\\/www.codexworld.com\\\/author\\\/nitya192265\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ajax Pagination with PHP and MySQL - CodexWorld","description":"Ajax Pagination in PHP - Create pagination with Ajax using JavaScript and PHP. Example script to integrate pagination with dynamic data from MySQL database using PHP and Ajax.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/","og_locale":"en_US","og_type":"article","og_title":"Ajax Pagination with PHP and MySQL - CodexWorld","og_description":"Ajax Pagination in PHP - Create pagination with Ajax using JavaScript and PHP. Example script to integrate pagination with dynamic data from MySQL database using PHP and Ajax.","og_url":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/","og_site_name":"CodexWorld","article_publisher":"https:\/\/www.facebook.com\/codexworld","article_author":"https:\/\/www.facebook.com\/codexworld","article_published_time":"2015-12-21T20:04:26+00:00","article_modified_time":"2025-09-16T10:04:02+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/12\/ajax-pagination-with-php-mysql-javascript-codexworld.jpg","type":"image\/jpeg"}],"author":"CodexWorld","twitter_card":"summary_large_image","twitter_creator":"@codexworldblog","twitter_site":"@codexworldweb","twitter_misc":{"Written by":"CodexWorld","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/#article","isPartOf":{"@id":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/"},"author":{"name":"CodexWorld","@id":"https:\/\/www.codexworld.com\/#\/schema\/person\/9da51d8fa3cdefeb5ec9c69136d4baf0"},"headline":"Ajax Pagination with PHP and MySQL","datePublished":"2015-12-21T20:04:26+00:00","dateModified":"2025-09-16T10:04:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/"},"wordCount":754,"commentCount":4,"publisher":{"@id":"https:\/\/www.codexworld.com\/#organization"},"image":{"@id":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/12\/ajax-pagination-with-php-mysql-javascript-codexworld.jpg","keywords":["Ajax","JavaScript","MySQL","Pagination","PHP"],"articleSection":["PHP"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/","url":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/","name":"Ajax Pagination with PHP and MySQL - CodexWorld","isPartOf":{"@id":"https:\/\/www.codexworld.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/#primaryimage"},"image":{"@id":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/12\/ajax-pagination-with-php-mysql-javascript-codexworld.jpg","datePublished":"2015-12-21T20:04:26+00:00","dateModified":"2025-09-16T10:04:02+00:00","description":"Ajax Pagination in PHP - Create pagination with Ajax using JavaScript and PHP. Example script to integrate pagination with dynamic data from MySQL database using PHP and Ajax.","breadcrumb":{"@id":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/#primaryimage","url":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/12\/ajax-pagination-with-php-mysql-javascript-codexworld.jpg","contentUrl":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/12\/ajax-pagination-with-php-mysql-javascript-codexworld.jpg","width":1920,"height":1080,"caption":"ajax-pagination-with-php-mysql-javascript-codexworld"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codexworld.com\/pagination-with-jquery-ajax-php-mysql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codexworld.com\/"},{"@type":"ListItem","position":2,"name":"Ajax Pagination with PHP and MySQL"}]},{"@type":"WebSite","@id":"https:\/\/www.codexworld.com\/#website","url":"https:\/\/www.codexworld.com\/","name":"CodexWorld","description":"Web &amp; Mobile App Development Company","publisher":{"@id":"https:\/\/www.codexworld.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codexworld.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codexworld.com\/#organization","name":"CodexWorld","url":"https:\/\/www.codexworld.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codexworld.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2014\/09\/codexworld-logo.png","contentUrl":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2014\/09\/codexworld-logo.png","width":200,"height":19,"caption":"CodexWorld"},"image":{"@id":"https:\/\/www.codexworld.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/codexworld","https:\/\/x.com\/codexworldweb","https:\/\/www.linkedin.com\/company\/codexworld","https:\/\/www.youtube.com\/codexworld"]},{"@type":"Person","@id":"https:\/\/www.codexworld.com\/#\/schema\/person\/9da51d8fa3cdefeb5ec9c69136d4baf0","name":"CodexWorld","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cf4999db3b409de559f80677afa01729bb2eeda19be273c254e8b2c22729e386?s=96&r=g","caption":"CodexWorld"},"description":"CodexWorld is a programming blog, one-stop destination for web professionals \u2014 developers, programmers, freelancers, and site owners.","sameAs":["http:\/\/www.codexworld.com","https:\/\/www.facebook.com\/codexworld","https:\/\/x.com\/codexworldblog"],"url":"https:\/\/www.codexworld.com\/author\/nitya192265\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.codexworld.com\/wp-content\/uploads\/2015\/12\/ajax-pagination-with-php-mysql-javascript-codexworld.jpg","jetpack_shortlink":"https:\/\/wp.me\/p6bxIh-iv","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/posts\/1147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/comments?post=1147"}],"version-history":[{"count":23,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/posts\/1147\/revisions"}],"predecessor-version":[{"id":5908,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/posts\/1147\/revisions\/5908"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/media\/5907"}],"wp:attachment":[{"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/media?parent=1147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/categories?post=1147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codexworld.com\/wp-json\/wp\/v2\/tags?post=1147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}