Pagination PHP

Pagination PHP

Halo teman-teman kita berjumpa lagi di artikel terbaru, oke untuk artikel kali ini kita akan mencoba bagaimana membuat halaman dengan PHP atau lebih di kenal dengan nama Pagination.

Untuk tutorial kali ini saya sudah menyiapkan databasenya, sebagai berikut:

-- phpMyAdmin SQL Dump
-- version 4.5.2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Feb 20, 2017 at 05:12 PM
-- Server version: 10.1.16-MariaDB
-- PHP Version: 5.6.24

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `db_list`
--

-- --------------------------------------------------------

--
-- Table structure for table `tbl_list`
--

CREATE TABLE `tbl_list` (
  `id` int(5) NOT NULL,
  `nama_list` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `tbl_list`
--

INSERT INTO `tbl_list` (`id`, `nama_list`) VALUES
(1, 'List 1'),
(2, 'List 2'),
(3, 'List 3'),
(4, 'List 4'),
(5, 'List 4'),
(6, 'List 5'),
(7, 'List 6'),
(8, 'List 7'),
(9, 'List 8'),
(10, 'List 9'),
(11, 'List 10');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tbl_list`
--
ALTER TABLE `tbl_list`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `tbl_list`
--
ALTER TABLE `tbl_list`
  MODIFY `id` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Kemudian untuk filenya, seperti dibawah ini:

<!DOCTYPE html>
<html>
<head>
	<title>Pagination</title>
</head>
<body>
	<h3>Data List</h3>
	<form>
		<table border="1">
			<thead>
				<tr>
					<th>No</th>
					<th>#</th>
					<th>Nama</th>
				</tr>
			</thead>
			<tbody>
				<?php
					include "koneksi.php";

					//start pagination atau paging
					$sql_data = mysql_query("SELECT * FROM tbl_list ORDER BY id DESC") or die (mysql_error());
					$per_page = 2;
					$num_links = 2;
					$total_rows = mysql_num_rows($sql_data);
					$cur_page = 1;

					if(isset($_GET['page'])){
						$cur_page = $_GET['page'];
						$cur_page = ($cur_page < 1) ? 1: $cur_page;
					}

					$offset = ($cur_page - 1) * $per_page;
					$pages = ceil($total_rows/$per_page);
					$start = (($cur_page - $num_links) > 0) ? ($cur_page - ($num_links - 1)): 1;
					$end = (($cur_page + $num_links) < $pages) ? ($cur_page + $num_links) : $pages;

					$sql_data2 = mysql_query("SELECT * FROM tbl_list ORDER BY id DESC LIMIT $per_page OFFSET $offset") or die (mysql_error());

					$no = ($cur_page * $per_page) - 1;

					//$no = 1;
					//$sql=mysql_query("SELECT * FROM tbl_list");

					while($row = mysql_fetch_array($sql_data2)){?>
						<tr>
							<td><?php echo $no;?></td>
							<td><?php echo $row['id'];?></td>
							<td><?php echo $row['nama_list'];?></td>
						</tr>
						<?php $no++;?>
					<?php }
				?>

				<!-- Mulai Paging -->

				<?php if(isset($pages)){?>
					<?php if($pages > 1){?>
						<?php if($cur_page > $num_links){?>
							<a href="data-list.php"> First </a>
						<?php } ?>

						<?php if($cur_page > 1){?>
							<a href="data-list.php?page=<?php echo $cur_page -1?>"> Prev </a>
						<?php } ?>

						<?php for($x=$start; $x<=$end; $x++){?>
							<?php if($x == $cur_page){?>
								<a> <?php echo $x ?> </a>
							<?php } else {?>
								<a href="data-list.php?page=<?php echo $x ?>"> <?php echo $x?> </a>
							<?php } ?>
						<?php } ?>

						<?php if($cur_page < $pages){?>
							<a href="data-list.php?page=<?php echo $cur_page + 1?>"> Next </a>
						<?php }?>

						<?php if($cur_page < ($pages - $num_links)){?>
							<a href="data-list.php?page=<?php echo $pages ?>"> Last </a>
						<?php }?>
					<?php } ?>
				<?php } ?>
				
			</tbody>
		</table>
	</form>

</body>
</html>

dan tentunya kalian jangan lupa membuat koneksi ke databasenya, kalau saya membuatnya seperti berikut silahkan di sesuaikan dengan database dan tabel yang teman-teman buat.

<?php
	$server = "localhost";
	$user = "root";
	$pass = "";
	$dbase = "db_list";

	$kon = mysql_connect($server, $user, $pass) or die (mysql_error());
	$db = mysql_select_db($dbase, $kon) or die (mysql_error());

Silahkan mencoba,…

Comments are closed.