Phân trang trong PHP

Phân trang trong PHP hay còn gọi là PHP pagination, là 1 việc rất quan trọng đối với mọi trang web có trang danh sách (trang list).

Với 1 danh sách dài dằng dặc, ví dụ một danh sách liệt kê tất cả các nhân sự của 1 công ty lớn nào đó.

Giả sử công ty đó có 1000 nhân viên. Nếu liệt kê tất cả thông tin của các nhân viên trên cùng 1 trang web thì thật là kinh khủng. Chính vì lẽ đó, việc phân trang trong PHP (PHP pagination) đã ra đời.

Để minh họa cho bài viết hướng dẫn ngay sau đây, mình đã tạo ra 1 project mới tên là Pagination, mô tả lại cách thức phân trang như thế nào trong PHP.

Các bạn có thể tải về source code của project này tại đây!

Thư mục dự án Pagination có cấu trúc như hình dưới:

pagination

1) Trang index.php là trang hiển thị danh sách. (Ex: danh sách các thành viên)

<!DOCTYPE html>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
<title>Human Resource Management</title>
</head>
<body>
<br />
<center>
<table border=1>
<tr>
<th>MemberID</th>
<th>MemberName</th>
<th>Birthday</th>
<th>Place</th>
<th>Phone</th>
<th>Email</th>
</tr>
<?php
include_once ‘BizManager/ConnectionManager.php’;
include_once ‘BizManager/PagingManager.php’;

// Show Members List
$paging_instance = new PagingManager();
if (isset($_GET[‘p’]))
{
// Get start record
$start_row = ($_GET[‘p’] * PagingManager::$pagesize) – PagingManager::$pagesize;
}
else
{
$start_row = 0;
}
$result = $paging_instance->getData(“Select * from Members limit $start_row,” . PagingManager::$pagesize);
$select_count = $paging_instance->getData(“Select count(*) from Members”);
$page_count = $select_count/PagingManager::$pagesize;

// Display data in html view
while ($row = mysql_fetch_array($result))
{
echo “<tr>
<td>” . $row[‘MemberID’] . “</td>
<td>” . $row[‘MemberName’] . “</td>
<td>” . $row[‘Birthday’] . “</td>
<td>” . $row[‘Place’] . “</td>
<td>” . $row[‘Phone’] . “</td>
<td>” . $row[‘Email’] . “</td>
</tr>”;
}

echo “<tr>
<td colspan=6>”;
for($i = 1; $i <= ceil($page_count);$i++)
{
echo “<b><a href=” . “?p=$i” . ” style=\”text-decoration:none\”>$i </a></b>”;
}
echo “</td>
</tr>
</table></center>”;
?>
</table>
</center>
</body>
</html>

2) Trang ConnectionManager.php thiết lập thông tin kết nối với mySQL

<?php
/**
* This class contains functions of implementing pagination
*
* @author Luu Van Phong <luuvanphong@outlook.com>
*/
class ConnectionManager {
public static $db_hostname = “localhost”;
public static $db_database = “hrm”; // Human Resource Management
public static $db_username = “root”;
public static $db_password = “”;
}

?>

3) Trang PagingManager.php kết nối và xử lý dữ liệu truyền về từ mySQL

<?php
/**
* This class contains functions of implementing pagination
*
* @author Luu Van Phong <luuvanphong@outlook.com>
*/
class PagingManager {
// PageSize default value
public static $pagesize = 3;

// Connect to mySQL
public function openConnection($hostname, $database, $username, $password)
{
// Connect to the server
$server_connect = mysql_connect($hostname, $username, $password);
if (!$server_connect) die(“Can not connect to the server.<br/>”);

// Connect to get data from database
$db_connect = mysql_select_db($database);
if (!$db_connect) die(“Can not connect to the database.<br/>”);
}

// Close database connection
public function closeConnection()
{
mysql_close();
}

// Select data from the database
public function getData($query)
{
$this->openConnection(ConnectionManager::$db_hostname, ConnectionManager::$db_database,
ConnectionManager::$db_username, ConnectionManager::$db_password);
$result = mysql_query($query);
$this->closeConnection();
return $result;
}
}

?>

À còn file .sql nữa nhỉ?!

Database phục vụ cho project Pagination là hrm

Các bạn tải về tại đây nhé!

Advertisements

Debug với xdebug

Debug trong PHP là một điều vô cùng đơn giản và dễ dàng khi PHP cung cấp cho chúng ta một công cụ debug là xdebug.

xdebug đã được tích hợp sẵn trong PHP rồi. Việc của chúng ta đơn giản là dùng nó thôi.

Để kích hoạt công cụ debug này, chúng ta làm như sau:

Các bạn vào theo đường dẫn: C:\xampp\php\php.ini 

Các bạn kéo xuống dòng gần cuối cùng, các bạn sẽ thấy khu vực bắt đầu bằng [XDebug]

Các bạn hãy bỏ hết comment trong khu vực đó đi. Đơn giản bằng cách bỏ các dấu ; ở trước xdebug.

[XDebug]
zend_extension = “C:\xampp\php\ext\php_xdebug.dll”
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = “C:\xampp\tmp”
xdebug.profiler_output_name = “cachegrind.out.%t-%s”
xdebug.remote_enable = 1
xdebug.remote_handler = “dbgp”
xdebug.remote_host = “127.0.0.1”
xdebug.trace_output_dir = “C:\xampp\tmp”

Các bạn nhớ thiết lập giá trị xdebug.remote_enable = 1 để enable xdebug lên nhé!

Chúc các bạn thành công!

PHP và AngularJS

Nhắc đến AngularJS chắc hẳn nhiều lập trình viên Việt Nam sẽ thấy lạ lẫm. Phần vì AngularJS không nổi tiếng như jQuery nên không thu hút được nhiều sự chú ý, phần vì AngularJS không được ứng dụng nhiều trong các dự án do các lập trình viên Việt Nam làm nên những cái hay cái dở của nó chưa được liệt kê và áp dụng.

Giống như jQuery, AngularJS là một Javascript framework. Nó hoàn toàn miễn phí và do Google nắm bản quyền và hỗ trợ. Cho nên chúng ta hoàn toàn yên tâm về tương lai tươi sáng của nó.

Định nghĩa về AngularJS theo như Wikipedia

AngularJS is an open-source JavaScript framework, maintained by Google, that assists with running what are known as single-page applications. Its goal is to augment browser-based applications with model–view–controller (MVC) capability, in an effort to make both development and testing easier.

The library reads in HTML that contains additional custom tag attributes; it then obeys the directives in those custom attributes, and binds input or output parts of the page to a model represented by standard JavaScript variables. The values of those JavaScript variables can be manually set, or retrieved from static or dynamic JSON resources.

Điều mà mình thấy hấp dẫn nhất ở AngularJS chính là việc nó được thiết kế để hoạt động theo mô hình MVC (Model-View-Controller). Nếu bạn nào đang lập trình PHP thì không thể không biết đến mô hình này. Việc tách bạch giữa các phần trong mô hình MVC khiến cho chúng ta dễ quản lý, code thông thoáng, rõ ràng và dễ dàng trong việc chia sẻ cũng như bảo trì sau này.

Code của AngularJS rất ngắn gọn. Nó ngắn gọn hơn cả code của jQuery.

AngularJS mang trong mình tốc độ xử lý, hiệu năng cao và thật sự mềm dẻo!

 

Hãy cùng học AngularJS và chia sẻ tất cả thông tin về nó nhé!

 

Cài đặt và config CodeIgniter framework với NetBeans

Chào các bạn!

Sau khi đã ngâm cứu cách cài đặt CodeIgniter framework với NetBeans thành công! Hôm nay mình sẽ hướng dẫn các bạn cách cài đặt và config với PHP framework này! Các bước cụ thể như  sau:

1) Các bạn vào trang web sau để tải về CodeIgniter framework mới nhất nhé

http://www.codeigniter.com

2) Các bạn mở NetBeans IDE ra

3) Từ menu, các bạn vào theo đường dẫn sau Tools –> Plugins –> tab Setting –> Click Add và điền vào link download plugin như hình bên dưới.

codeigniter_plugin

4) Sau đó các bạn chuyển qua tab Available Plugins và search với từ khóa là codeigniter –> các bạn Install cả 2 plugins là PHP CI Framework và PHP CI Framework Repository nhé!

codeigniter_install

5) Cuối cùng là đến giai đoạn config đường dẫn đến file CodeIgniter.zip mà các bạn đã download về ở bước 1. Các bạn vào theo đường dẫn Tools –> Options –> PHP tab –> CodeIgniter tab –> Base Files –> Add Zip… –> Browse tới file CodeIgniter

codeigniter_config

Vậy là hoàn thành rùi đó!

Các bạn hãy tạo 1 project mới và sử dụng framework CodeIgniter này nhé!

Chúc các bạn thành công!