By GokiSoft.com| 21:13 31/01/2024|
Học PHP

[Examination] Kiểm Tra 60 phút - Test nhanh - Khóa học PHP

Thiết kế CSDL đặt tên là DB0512 gồm 1 bảng product gồm các column sau: id tự tăng, tiêu đề, thumbnail, price, content, created_at, updated_at

Yêu cầu:

- Tự add vào bảng product khoảng 35 sản phẩm

- Tạo trang product.php -> Hiển thị danh sách sản phẩm -> thực hiện phân trang 10 sản phẩm/1 trang.

- Tạo 1 bộ lọc trên tang product -> cho phép tìm kiếm theo tiêu đề và nội dung (sử dụng like trong tìm kiếm)



Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)

GokiSoft.com [Teacher]
GokiSoft.com

2021-06-07 07:51:38


#utility.php


<?php

function getGet($key) {
	if (isset($_GET[$key])) {
		return $_GET[$key];
	}
	return '';
}


#readme.txt


B1. Phân tích database

create table products (
	id int primary key auto_increment,
	title varchar(350) not null,
	thumbnail varchar(500),
	price float,
	content longtext,
	created_at datetime,
	updated_at datetime
)

B2. Fake data
B3. Phat trien chuc nang du an
1) Xay dung khung chuong trinh
- db
	- config.php => Chua thong tin cau hinh database & server
	- dbhelper.php => Chua thu vien thao tac vao database
- utils
	- utility.php => chua function hay dung cua du.
2) Phat trien chuc nang


#product.php


<?php
require_once ('db/dbhelper.php');
require_once ('utils/utility.php');

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

$currentIndex = ($page-1)*PAGE_NUMBER_MAX;
$s            = getGet('s');

if (!empty($s)) {
	$sql = "select * from products where title like '%$s%' or content like '%$s%' limit $currentIndex, " .PAGE_NUMBER_MAX;

	$sqlCount = "select count(*) as 'Total' from products where title like '%$s%' or content like '%$s%' ";
} else {
	$sql      = "select * from products limit $currentIndex, " .PAGE_NUMBER_MAX;
	$sqlCount = "select count(*) as 'Total' from products";
}
$results = executeResult($sql);
// echo $sqlCount;
// die();
$data     = executeResult($sqlCount);
$total    = $data[0]['Total'];
$numPages = ceil($total/PAGE_NUMBER_MAX);
?>
<!DOCTYPE html>
<html>
<head>
	<title>Product List</title>
	<!-- Latest compiled and minified CSS -->
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

	<!-- jQuery library -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

	<!-- Popper JS -->
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

	<!-- Latest compiled JavaScript -->
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>
	<div class="container">
		<div class="panel panel-primary">
			<div class="panel-heading">
				<h2 class="text-center">Product List</h2>
			</div>
			<div class="panel-body">
				<form method="get">
					<input type="text" name="s" placeholder="Enter searching .." class="form-control" style="width: 200px">
				</form>
				<table class="table table-bordered" style="margin-top: 10px;">
					<thead>
						<tr>
							<th>No</th>
							<th>Thumbnail</th>
							<th>Title</th>
							<th>Updated At</th>
							<th></th>
							<th></th>
						</tr>
					</thead>
					<tbody>
<?php
$counter = 0;
foreach ($results as $item) {
	echo '<tr>
			<td>'.(++$counter).'</td>
			<td><img src="'.$item['thumbnail'].'" style="width: 120px"/></td>
			<td>'.$item['title'].'</td>
			<td>'.$item['updated_at'].'</td>
			<td></td>
			<td></td>
		</tr>';
}
?>
</tbody>
				</table>
<ul class="pagination">
<?php
if ($page > 1) {
	echo '<li class="page-item"><a class="page-link" href="?s='.$s.'&page='.($page-1).'">Previous</a></li>';
}

$pageAvaiable = [1, 2, $page-1, $page, $page+1, $numPages-1, $numPages];
$isFirst      = false;
$isBefore     = false;

for ($i = 1; $i <= $numPages && $numPages > 1; $i++) {
	if (!in_array($i, $pageAvaiable)) {
		if ($i < $page && !$isFirst) {
			echo '<li class="page-item"><a class="page-link" href="?s='.$s.'&page='.($page-2).'">...</a></li>';
			$isFirst = true;
		}
		if ($i > $page && !$isBefore) {
			echo '<li class="page-item"><a class="page-link" href="?s='.$s.'&page='.($page+2).'">...</a></li>';
			$isBefore = true;
		}
		continue;
	}

	if ($i == $page) {
		echo '<li class="page-item active"><a class="page-link" href="?s='.$s.'&page='.$i.'">'.$i.'</a></li>';
	} else {
		echo '<li class="page-item"><a class="page-link" href="?s='.$s.'&page='.$i.'">'.$i.'</a></li>';
	}
}
if ($page < $numPages) {
	echo '<li class="page-item"><a class="page-link" href="?s='.$s.'&page='.($page+1).'">Next</a></li>';
}
?>

</ul>
			</div>
		</div>
	</div>
</body>
</html>


#dbhelper.php


<?php
require_once ('config.php');

/**
 * Su dung voi cau lenh query: insert, update, delete -> ko tra ve ket qua.
 */
function execute($sql) {
	//Mo ket noi toi database
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
	mysqli_set_charset($conn, 'utf8');

	//Xu ly cau query
	mysqli_query($conn, $sql);

	//Dong ket noi database
	mysqli_close($conn);
}

/**
 * Su dung voi cau lenh query: select.
 */
function executeResult($sql) {
	//Mo ket noi toi database
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
	mysqli_set_charset($conn, 'utf8');

	// echo $sql;
	//Xu ly cau query
	$resultset = mysqli_query($conn, $sql);
	// var_dump($resultset);
	// die();
	$data = [];
	while (($row = mysqli_fetch_array($resultset, 1)) != null) {
		$data[] = $row;
	}
	/**
	 * TH: param2 = 1
	 * $row = [
	 * 		'id' => 1,
	 * 		'title' => '1 - Android Tivi Sony 4K 55 inch KD-55X8000H',
	 * 		'thumbnail' => '12321',
	 * 		...
	 * ];
	 *
	 * TH: param2 = 2
	 * $row = [1, '1 - Android Tivi Sony 4K 55 inch KD-55X8000H', '12321', ...];
	 */

	//Dong ket noi database
	mysqli_close($conn);

	return $data;
}


#config.php


<?php
define('HOST', 'localhost');
define('USERNAME', 'root');
define('PASSWORD', '');
define('DATABASE', 'BT2289');

define('PAGE_NUMBER_MAX', 5);



Đào Mạnh Dũng [C2010L]
Đào Mạnh Dũng

2021-05-22 15:07:17


#product.php


<!DOCTYPE html>
<html>
<head>
	<title>product</title>
 <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
 <style type="text/css">
 	.linkA {

 		font-size: 20px;
 		color: gray;
 		text-underline-position: none;
 		padding: 10px;
 	}
 </style> 
</head>
<body>
		<div class="container">
			  <table class="table table-bordered">
			    <thead>
			      <tr>
			        <th>NO</th>
			        <th>thumbnail</th>
			        <th>title</th>
			        <th>price</th>
			        <th>updated_at</th>
			       </tr>
			    </thead>
			    <tbody>
			      <tr>
			      	 
	<?php
	include_once 'db/dbhelper.php';
		$count = 1;
		$sql = "select * from product";
		
		
$right = $left = $Page = '';


			if(!empty($_GET))
				{
						$Page = $_GET['Page'];
						$right = ($Page-1)*10;
						$left  = $right+10;

					$sql = $sql." where id >= $right and id <=$left";
				}
			else
				$sql = $sql." where id >= 0 and id <=10";

		$product=executeResult($sql);

		foreach ($product as $item) {
			echo "	<tr>
						<td>".$count++."</td>
	        			<td><img style=\"width: 100px\" src='".$item['thumbnail']." '></td>
	        			<td>".$item['id']."</td>
	        			<td>".$item['price']."</td>
	        			<td>".$item['updated_at']."</td>
        			</tr>
        			";
        	}
	?>		      	
			      </tr>
			    </tbody>
			  </table>
			</div>
<?php

if(!empty($_GET))
	{
		$Page = $_GET['Page'];
		echo "<div class='container'>
				<div style='width: 100%'>
					<a href='product.php' class='linkA'>Đầu</a>
					<a href='product.php?Page=".(string)($Page-1)."' class='linkA'>".(string)($Page-1)."</a>
					<a href='product.php?Page=".(string)($Page)."' class='linkA'>".(string)($Page)."</a>
					<a href='product.php?Page=".(string)($Page+1)."' class='linkA'>".(string)($Page+1)."</a>
					<a class='linkA'>...</a>
					<a href='' class='linkA'>Cuối</a>
				</div>
			</div>";

	}
else
		echo "<div class='container'>
				<div style='width: 100%'>
					<a href='product.php' class='linkA'>Đầu</a>
					<a href='product.php?Page=1' class='linkA'>1</a>
					<a href='product.php?Page=2' class='linkA'>2</a>
					<a href='product.php?Page=3' class='linkA'>3</a>
					<a class='linkA'>...</a>
					<a href='' class='linkA'>Cuối</a>
				</div>
			</div>";
 


?>
</body>
</html>


#config.php


<?php
define('HOST', 'localhost');
define('USERNAME', 'root');
define('PASSWORD', '');
define('DATABASE', 'bt 2289');


#dbhelper.php


<?php
require_once ('config.php');

/**
 * Su dung cho lenh: insert/update/delete
 */

function execute($sql) {
	// Them du lieu vao database
	//B1. Mo ket noi toi database
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
	mysqli_set_charset($conn, 'utf8');

	//B2. Thuc hien truy van insert
	mysqli_query($conn, $sql);

	//B3. Dong ket noi database
	mysqli_close($conn);
}
/**
 * Su dung cho lenh: select
 */
function executeResult($sql, $isSingle = false) {
	// Them du lieu vao database
	//B1. Mo ket noi toi database
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
	mysqli_set_charset($conn, 'utf8');

	//B2. Thuc hien truy van insert
	$resultset = mysqli_query($conn, $sql);
	$data      = [];


	if($isSingle) {
		$data = mysqli_fetch_array($resultset, 1);
	} else {
		while (($row = mysqli_fetch_array($resultset, 1)) != null) {
			$data[] = $row;
		}
	}

	//B3. Dong ket noi database
	mysqli_close($conn);

	return $data;
}



Do Trung Duc [T2008A]
Do Trung Duc

2021-05-12 08:50:53



<?php
define('HOST', 'localhost');
define('USERNAME', 'root');
define('PASSWORD', '');
define('DATABASE', 'phpexam');



Do Trung Duc [T2008A]
Do Trung Duc

2021-05-12 08:50:39



<?php
require_once('config.php');

function create_edit_delete_Product($sql){
	// Mo ket noi  DB
	$conn = mysqli_connect(HOST,USERNAME,PASSWORD,DATABASE);
	mysqli_set_charset($conn, 'utf8');

	//Thuc hien querry
	mysqli_query($conn,$sql);

	//Dong ket noi
	mysqli_close($conn);
}


function select_Product ($sql){
	// Mo ket noi  DB
	$conn = mysqli_connect(HOST,USERNAME,PASSWORD,DATABASE);
	mysqli_set_charset($conn,'utf8');

	//Thuc hien querry
	$data = [];
	$resultset = mysqli_query($conn,$sql);
	while (($row = mysqli_fetch_array($resultset,1)) != null ) {
		$data[] = $row;
	}
	

	//Dong ket noi
	mysqli_close($conn);
	return $data;
}




Do Trung Duc [T2008A]
Do Trung Duc

2021-05-12 08:50:16



<?php
require_once('DBhelper.php');

$sql = 'select count(id) as quantity from product ';
$data = select_Product($sql);

$product_quantity = 0;
if ($data != null && count($data)>0) {
	$product_quantity = $data[0]['quantity'];
}

$page_quantity = ceil($product_quantity/10);

$id_page = 1;
if(isset($_GET['id_page'])){
	$id_page = $_GET['id_page'];	
}

$displayposition = ($id_page - 1) * 10;	

	$sql = "select * from product limit $displayposition, 10";
	
	$productList = select_Product($sql);

if (!empty($_GET)) {
	if (isset($_GET['search'])) {
		$search = $_GET['search'];


		$sql = "select * from product where title like '%".$search."%'";
		// $sql = "select * from product where title like '%".$search."%' limit $displayposition,10";
		$productList = select_Product($sql);
	}
}

?>

<!DOCTYPE html>
<html>
<head>
	<title>Manager Product List</title>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</head>
<body>
	<form method="get">
		<input placeholder="Enter to search" style="width: 50%" type="" name="search">
		<button>Click to search</button>
	</form>
	
	<table class="table table-bordereda">
		<thead>
			<tr>
				<th>No</th>
				<th>Title</th>
				<th>Thumnail</th>
				<th>Price</th>
				<th>Updated_at</th>

			</tr>
		</thead>
		<tbody>
			<?php
			$count = 0;
			foreach ($productList as $product) {
				echo'
				<tr>
				<td>'.(++$count).'</td>
				<td>'.$product['title'].'</td>
				<td><img src="'.$product['thumnail'].'" style="width: 160px"/></td>
				<td>'.$product['price'].'</td>
				<td>'.$product['updated_at'].'</td>
				';
			}
			?>
		</tbody>
	</table>

	<ul class="pagination">
		<li class="page-item"><a class="page-link" href="#">Previous</a></li>
		<?php
		for($i = 1; $i <= $page_quantity; $i++){
			echo '<li class="page-item"><a class="page-link" href="index.php?id_page='.$i.'">'.$i.'</a></li>';
		}
		?>
		<li class="page-item"><a class="page-link" href="#">Next</a></li>
	</ul>
</body>
</html>



Nguyễn Anh Vũ [T2008A]
Nguyễn Anh Vũ

2021-05-12 08:46:59


#product.php


<colgroup>
					    <col width="50" span="2">
					    <col width="500" span="1">
					    <col width=auto span="2">
					    <col width="auto" span="1">
					  </colgroup>
	<!DOCTYPE html>
<html>

<head>
	<title>News Page</title>
	<!-- Latest compiled and minified CSS -->
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

	<!-- jQuery library -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

	<!-- Popper JS -->
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

	<!-- Latest compiled JavaScript -->
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>

<body>
	<div class="container">
				<div class="card">
					<div class="card-header bg-info text-light text-uppercase">
			              Tesla-Roadster 2020
					</div>
				</div>
				<input type="text" class="form-control" style="margin-top: 10px; margin-bottom: 10px; float: right;" placeholder="Tìm kiếm ..." onkeyup="funcSeaching(this)">
				<table class="table table-bordered table-striped">
					<thead>
						<tr>
							<th>No</th>
							<th>Thumbnail</th>
							<th>Title</th>
							<th>Price</th>
							<th>Updated at</th>
						</tr>
					</thead>
					<tbody id="result">
                       <?php
                         	$limit = 10;
	                        $page = 1;
	                        function executeResult($sql) {
								
								$con = mysqli_connect('localhost', 'root', '', 'ddb0512');
								
								$result = mysqli_query($con, $sql);
								$data   = [];
								while ($row = mysqli_fetch_array($result, 1)) {
									$data[] = $row;
								}

								mysqli_close($con);

								return $data;
							}
							function executeSingleResult($sql) {
								
								$con = mysqli_connect('localhost', 'root', '', 'ddb0512');
								
								$result = mysqli_query($con, $sql);
								$row    = mysqli_fetch_array($result, 1);
								mysqli_close($con);

								return $row;
							}

                       		 if(isset($_GET['page'])){
		                        $page = $_GET['page'];
		                    }

	                        if($page <= 0 ){
 									$page = 1;
	                    	}
							

							$firstIndex = ($page-1)*$limit;
							
							$sql    = 'select * from product where 1 limit '.$firstIndex.','.$limit;
						
							$list = executeResult($sql);
 							

 							$db = 'select count(id) as total from product';	
                            $countRe = executeSingleResult($db);
                            $countPage = $countRe['total'];
                            $number = ceil($countPage/$limit);
							foreach ($list as $row) {
								echo '<tr>
										<th>'.(     ++$firstIndex).'</th>
										<th><img src="'.$row['thumbnail'].'" style="width: 10%"></th>
										<th>'.$row['title'].'</th>
										<th>'.$row['price'].'</th>
										<th>'.$row['updated_at'].'</th>
									</tr>';
							}

                            
							
							?>

								
					</tbody>
				</table>
	<ul class="pagination">
	          	  <li class="page-item"><a class="page-link" href="#">Previous</a></li>
	          	<?php
	          		for($i=0; $i < $number ; $i++){
	          		echo '<li class="page-item"><a class="page-link" href="?page='.($i+1).'">'.($i+1).'</a></li>';
	          	};

	          	?>
				  <li class="page-item"><a class="page-link" href="#">Next</a></li>
				</ul>
     

	
	</div>
</body>
</html>



Nguyễn đình quân [T2008A]
Nguyễn đình quân

2021-05-12 08:43:39




<?php
const HOST     = 'localhost';
const USERNAME = 'root';
const PASSWORD = '';
const DATABASE = 'students';



<?php
require_once ('database.php');
if (!empty($_POST)) {
	$Thumbnail = $_POST['Thumbnail'];
	$Title    = $_POST['Title'];
	$Price = $_POST['Price'];
    $UpdateAt = $_POST['Update At'];
	if ($name != "" && $address != "") {
		$query = 'insert into students(Thumbnail,Title , Price, Update At) values("'.$Thumbnail.'", "'.$Title.'", "'.$Price.'", "'.$UpdateAt.'",)';
		query($query);
	}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>DB0512</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container-fluid">
	<div class="panel panel-primary">
		<div class="panel-heading">
			Student List
		</div>
		<div class="panel-body">
			<table class="table table-hover table-bordered">
				<tr>
					<th>No</th>
					<th>Thumbnail</th>
					<th>Title</th>
					<th>Price</th>
					<th>Update At</th>
				</tr>
<?php
$query  = 'select * from students';
$result = select($query);

for ($i = 0; $i < count($result); $i++) {
	echo '<tr>
				<td>'.($i+1).'</td>
				<td>'.$result[$i]['Thumbnail'].'</td>
				<td>'.$result[$i]['Title'].'</td>
				<td>'.$result[$i]['Price'].'</td>
				<td>'.$result[$i]['Update At'].'</td>

			</tr>';
}
?>
			</table>
		</div>
	</div>
</div>
<div class="container-fluid">
	<div class="panel panel-primary">
		<div class="panel-body">
			<form method="post">
				<div class="form-group">
					<label> Name</label>
					<input type="text" name="name" class="form-control">
				</div>
				<div class="form-group">
					<label>Price</label>
					<input type="text" name="Price" class="form-control">
				</div>
				<div class="form-group">
					<label>Title</label>
					<input type="text" name="Title" class="form-control">	
				</div>
				<button class="btn btn-success">Register</button>
			</form>
		</div>
	</div>
</div>
</body>
</html>



	#database.php
	<?php
require_once ('config.php');

function query($query) {
	//tao ket noi toi database
	$conn = new mysqli(HOST, USERNAME, PASSWORD, DATABASE);
	mysqli_set_charset($conn, 'utf-8');

	//thuc hien cac cau truy van
	//insert, update, delete
	// $conn->query($query);
	mysqli_query($conn, $query);

	//dong ket noi
	$conn->close();
}

function select($query) {
	//tao ket noi toi database
	$conn = new mysqli('localhost', 'root', '', 'students');
	mysqli_set_charset($conn, 'utf-8');

	//thuc hien cac cau truy van
	//select
	// $cusor = $conn->query($query);
	$cusor  = mysqli_query($conn, $query);
	$result = [];
	while ($row = mysqli_fetch_array($cusor, 1)) {
		$result[] = $row;
	}
	//dong ket noi
	$conn->close();
	return $result;
}



<!DOCTYPE html>
<html lang="en">
<head>
  <title>DB5012</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</head>
<body>
	<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
  <form class="form-inline" action="/action_page.php">
    <div class="input-group">
      <div class="input-group-prepend">
        <span class="input-group-text">@</span>
      </div>
      <input type="text" class="form-control" placeholder="Enter to seach" >
    </div>
  </form>
</nav>
<body>
	<style>
table {
width:100%;
}
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 5px;
text-align: left;
}
table#table1 tr:nth-child(even) {
background-color: #eee;
}
table#table1 tr:nth-child(odd) {
background-color:#fff;
}
table#table1 th {
background-color: black;
color: white;
}
</style>
</head>
<body>
 
<table>
<tr>
<th>No</th>
<th>Thumbnail</th>
<th>Title</th>
<th>Price</th>
<th>Update At</th>
</tr>
<tr>
<td>1</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>2</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>3</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>4</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>5</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>6</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>7</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>8</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>9</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>10</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>11</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>12</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>13</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>14</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>15</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>16</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>17</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>18</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>19</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>20</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>21</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>22</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>23</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>24</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>25</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>26</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>27</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>28</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>29</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>30</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>31</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>32</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>33</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>34</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>
<tr>
<td>35</td>
<td><img src="https://tse4.mm.bing.net/th?id=OIP.-35SVsQtw2FfpOaepIFw-wHaEK&pid=Api&P=0&w=281&h=159"></td>
<td>Focus2movel Icelandic cars market - Facts & Data 2020</td>
<td>$20.000</td>
<td>12/05/2021</td>
</tr>


</table>
 
</body>
</html>
</body>

   


					
	
	</div>
</body>
</html>



Nguyễn Tiến Đạt [T2008A]
Nguyễn Tiến Đạt

2021-05-12 08:42:46

Mặc dù em nộp muộn nhưng chất lượng đáp ứng full ạ

#config.php


<?php
define('HOST', 'localhost');
define('USERNAME', 'root');
define('PASSWORD', '');
define('DATABASE', 'db0512');


#database-helper.php


<?php
require_once ('config.php');

function removeSpecialCharacter($str) {
	$str = str_replace('\\', '\\\\', $str);
	$str = str_replace('\'', '\\\'', $str);

	return $str;
}

function getPOST($key) {
	$value = '';
	if (isset($_POST[$key])) {
		$value = $_POST[$key];
	}
	return removeSpecialCharacter($value);
}

function getGET($key) {
	$value = '';
	if (isset($_GET[$key])) {
		$value = $_GET[$key];
	}
	return removeSpecialCharacter($value);
}


#form-main.php


<?php
$searchTitle = "";
if(!empty($_POST)){
    $searchTitle = getPOST('searchTitle');
    if(!empty($searchTitle)){
        header('Location: main.php?searchTitle='.$searchTitle);
    }else{
        header('Location: main.php');
    }
}


#main.php


<?php
require_once('database-helper.php');
require_once('form-main.php');
$searchTitle = getGET('searchTitle');
if (!empty($searchTitle)) {
    $conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
    $result = mysqli_query($conn, "select count(id) as total from product where title like '%$searchTitle%'");
    $row = mysqli_fetch_assoc($result);
    $total_records = $row['total'];
    $current_page = isset($_GET['page']) ? $_GET['page'] : 1;
    $limit = 10;
    $total_page = ceil($total_records / $limit);
    if ($current_page > $total_page) {
        $current_page = $total_page;
    } else if ($current_page < 1) {
        $current_page = 1;
    }
    $start = ($current_page - 1) * $limit;
    $result = mysqli_query($conn, "SELECT * FROM product where title like '%$searchTitle%' LIMIT $start, $limit");
} else {
    $conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
    $result = mysqli_query($conn, 'select count(id) as total from product');
    $row = mysqli_fetch_assoc($result);
    $total_records = $row['total'];
    $current_page = isset($_GET['page']) ? $_GET['page'] : 1;
    $limit = 10;
    $total_page = ceil($total_records / $limit);
    if ($current_page > $total_page) {
        $current_page = $total_page;
    } else if ($current_page < 1) {
        $current_page = 1;
    }
    $start = ($current_page - 1) * $limit;
    $result = mysqli_query($conn, "SELECT * FROM product LIMIT $start, $limit");
}
?>
<!doctype html>
<html lang="en">

<head>
    <title>Product List</title>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <!-- jQuery library -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <!-- Popper JS -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

    <!-- Latest compiled JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>

</head>

<body>
    <div class="form-group has-search" style="width: 400px;text-align:right;margin-left: auto;margin-right: 20px;margin-top:20px">
        <form method="post">
            <input name="searchTitle" type="text" class="form-control" placeholder="Enter to search...">
        </form>
    </div>
    <div class="container">
        <table class="table table-bordered">
            <thead>
                <tr>
                    <td>No</td>
                    <td>Thumbnail</td>
                    <td>Title</td>
                    <td>Price</td>
                    <td>Udpated At</td>
                </tr>
            </thead>
            <tbody>
                <?php
                $count = getGET('count');

                while ($row = mysqli_fetch_assoc($result)) {
                    if ($count < 9) {
                        echo '<tr>
                    <td>0' . (++$count) . '</td>
                    <td><img src="' . $row['thumbnail'] . '" style="max-width:160px"></td>
                    <td>' . $row['title'] . '</td>
                    <td>' . $row['price'] . '</td>
                    <td>' . $row['updated_at'] . '</td>
                    </tr>';
                    } else {
                        echo '<tr>
                    <td>' . (++$count) . '</td>
                    <td><img src="' . $row['thumbnail'] . '" style="max-width:160px"></td>
                    <td>' . $row['title'] . '</td>
                    <td>' . $row['price'] . '</td>
                    <td>' . $row['updated_at'] . '</td>
                    </tr>';
                    }
                }
                ?>
            </tbody>
        </table>
        <div class="pagination" style="margin-bottom: 20px;">
            <?php
            // PHẦN HIỂN THỊ PHÂN TRANG
            // BƯỚC 7: HIỂN THỊ PHÂN TRANG

            $count1 = getGET('count');
            // nếu current_page > 1 và total_page > 1 mới hiển thị nút prev
            if (!empty($count1)) {

                if ($current_page > 1 && $total_page > 1) {
                    $count1 -= 10;
                    echo '<a href="main.php?page=' . ($current_page - 1) . '&count=' . $count1 . '">Prev</a> | ';
                }
            }

            // Lặp khoảng giữa
            $dem = 0;
            for ($i = 1; $i <= $total_page; $i++) {
                // Nếu là trang hiện tại thì hiển thị thẻ span
                // ngược lại hiển thị thẻ a
                if ($i == $current_page) {
                    echo '<span>' . $i . '</span> | ';
                } else {
                    echo '<a href="main.php?page=' . $i . '&count=' . $dem . '">' . $i . '</a> | ';
                }
                $dem += 10;
            }
            $count2 = getGET('count');
            // nếu current_page < $total_page và total_page > 1 mới hiển thị nút prev
            if (!empty($count2)) {
                if ($current_page < $total_page && $total_page > 1) {
                    $count2 += 10;
                    echo '<a href="main.php?page=' . ($current_page + 1) . '&count=' . $count2 . '">Next</a> | ';
                }
            }

            ?>
        </div>
    </div>
    <!-- Optional JavaScript -->
    <script>

    </script>
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <!-- <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> -->
</body>

</html>



Vũ Đình Khôi [community,T2008A]
Vũ Đình Khôi

2021-05-12 08:42:37



<!DOCTYPE html>
<html>

<head>
	<title>News Page</title>
	<meta charset="utf-8">
	<!-- Latest compiled and minified CSS -->
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

	<!-- jQuery library -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

	<!-- Popper JS -->
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

	<!-- Latest compiled JavaScript -->
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>

<body>
	<div>
        <nav class="navbar navbar-expand-sm bg-dark navbar-dark">
            <form class="form-inline" action="/action_page.php">
        <div class="input-group">
            <div class="input-group-prepend">
        <span class="input-group-text">@</span>
           </div>
      <input type="text" class="form-control" placeholder="Enter to seach" >
    </div>
  </form>
</nav>
	</div>
	<div class="container">
				<div class="card">
					<div class="card-header bg-info text-light text-uppercase">
						Ô Tô
					</div>
				</div>
				<input type="text" class="form-control" style="margin-top: 10px; margin-bottom: 10px; float: right;" placeholder="Tìm kiếm ..." onkeyup="funcSeaching(this)">
				<table class="table table-bordered table-striped">
					<thead>
						<tr>
							<th>No</th>
							<th>Thumbnail</th>
							<th>Title</th>
							<th>Price</th>
							<th>Updated at</th>
						</tr>
					</thead>
					<tbody id="result">
                         <?php
	
							$con = mysqli_connect('localhost', 'root', '', 'DB0512');
							$sql    = 'select * from product';
							$result = mysqli_query($con, $sql);

                            $count = 0;
							while ($row = mysqli_fetch_array($result, 1)) {
								echo '<tr>
										<th>'.(++$count).'</th>
										<th><img src="'.$row['thumbnail'].'" style="width: 20%"></th>
										<th>'.$row['title'].'</th>
										<th>'.$row['price'].'</th>
										<th>'.$row['updated_at'].'</th>
									</tr>';
							}
							//Dang ket noi.
							mysqli_close($con);
							?>	
					</tbody>
				</table>
	</div>
</body>
</html>



Nguyên Phấn Đông [T2008A]
Nguyên Phấn Đông

2021-05-12 08:39:55


#product.php



<!DOCTYPE html>
<html>

<head>
	<title>News Page</title>
	<!-- Latest compiled and minified CSS -->
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

	<!-- jQuery library -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

	<!-- Popper JS -->
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

	<!-- Latest compiled JavaScript -->
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>

<body>
	<div class="container">
				<div class="card">
					<div class="card-header bg-info text-light text-uppercase">
						Ô Tô
					</div>
				</div>
				<input type="text" class="form-control" style="margin-top: 10px; margin-bottom: 10px; float: right;" placeholder="Tìm kiếm ..." onkeyup="funcSeaching(this)">
				<table class="table table-bordered table-striped">
					<thead>
						<tr>
							<th>No</th>
							<th>Thumbnail</th>
							<th>Title</th>
							<th>Price</th>
							<th>Updated at</th>
						</tr>
					</thead>
					<colgroup>
					    <col width="50" span="2">
					    <col width="500" span="1">
					    <col width=auto span="2">
					    <col width="auto" span="1">
					  </colgroup>
					<tbody id="result">
                         <?php
                         	$limit = 10;
	                        $page = 1;
	                        function executeResult($sql) {
								//save data into table
								// open connection to database
								$con = mysqli_connect('localhost', 'root', '', 'DB0512');
								//insert, update, delete
								$result = mysqli_query($con, $sql);
								$data   = [];
								while ($row = mysqli_fetch_array($result, 1)) {
									$data[] = $row;
								}

								//close connection
								mysqli_close($con);

								return $data;
							}
							function executeSingleResult($sql) {
								//save data into table
								// open connection to database
								$con = mysqli_connect('localhost', 'root', '', 'DB0512');
								//insert, update, delete
								$result = mysqli_query($con, $sql);
								$row    = mysqli_fetch_array($result, 1);

								//close connection
								mysqli_close($con);

								return $row;
							}

                       		 if(isset($_GET['page'])){
		                        $page = $_GET['page'];
		                    }

	                        if($page <= 0 ){
 									$page = 1;
	                    	}
							

							$firstIndex = ($page-1)*$limit;
							
							$sql    = 'select * from product where 1 limit '.$firstIndex.','.$limit;
						
							$list = executeResult($sql);
 							

 							$db = 'select count(id) as total from product';	
                            $countRe = executeSingleResult($db);
                            $countPage = $countRe['total'];
                            $number = ceil($countPage/$limit);
							foreach ($list as $row) {
								echo '<tr>
										<th>'.(     ++$firstIndex).'</th>
										<th><img src="'.$row['thumbnail'].'" style="width: 100%"></th>
										<th>'.$row['title'].'</th>
										<th>'.$row['price'].'</th>
										<th>'.$row['updated_at'].'</th>
									</tr>';
							}

                            
							
							?>

								
					</tbody>
				</table>
	          
	          <ul class="pagination">
	          	  <li class="page-item"><a class="page-link" href="#">Previous</a></li>
	          	<?php
	          		for($i=0; $i < $number ; $i++){
	          		echo '<li class="page-item"><a class="page-link" href="?page='.($i+1).'">'.($i+1).'</a></li>';
	          	};

	          	?>
				  <li class="page-item"><a class="page-link" href="#">Next</a></li>
				</ul>
                     

	
	</div>
</body>
</html>



Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó