WEB TIN TỨC PHP CĂN BẢN
Bài 1: PHP trang tin tức - Tạo database và cấu trúc folder admin Bài 2: PHP trang tin tức - Viết thư viện xử lý database admin Bài 3: PHP trang tin tức - Viết thư viện session và functions admin Bài 4: PHP trang tin tức - Kết nối database và cấu trúc index admin Bài 5: PHP trang tin tức - Xây dựng header và footer admin Bài 6: PHP trang tin tức - Tạo chức năng đăng nhập, đăng xuất admin Bài 7: PHP trang tin tức - Xây dựng sidebar, content và phân trang admin Bài 8: PHP trang tin tức - Các chức năng chuyên mục admin Bài 9: PHP trang tin tức - Các chức năng chuyên mục admin (tiếp theo) Bài 10: PHP trang tin tức - Các chức năng của hình ảnh admin Bài 11: PHP trang tin tức - Các chức năng của hình ảnh admin (tiếp theo) Bài 12: PHP trang tin tức - Các chức năng của bài viết admin Bài 13: PHP trang tin tức - Các chức năng của bài viết admin (tiếp theo) Bài 14: PHP trang tin tức - Các chức năng cài đặt admin Bài 15: PHP trang tin tức - Các chức năng của tài khoản admin Bài 16: PHP trang tin tức - Các chức năng của tài khoản admin (tiếp theo) Bài 17: PHP trang tin tức - Các chức năng của profile admin Bài 18: PHP trang tin tức - Các chức năng của profile admin (tiếp theo) Bài 19: PHP trang tin tức - Xây dựng dashboard admin và fix bug Bài 20: PHP trang tin tức - Cấu trúc folder client Bài 21: PHP trang tin tức - Kết nối database và rewrite url Bài 22: PHP trang tin tức - Xây dựng header và footer client Bài 23: PHP trang tin tức - Xây dựng layout client Bài 24: PHP trang tin tức - Hiển thị danh sách bài viết mới nhất Bài 25: PHP trang tin tức - Hiển thị danh sách bài viết chuyên mục Bài 26: PHP trang tin tức - Hiển thị nội dung bài viết Bài 27: PHP trang tin tức - Xây dựng chức năng tìm kiếm Bài 28: PHP trang tin tức - Xây dựng các trang con và clear source (End)
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Bài 26: PHP trang tin tức - Hiển thị nội dung bài viết

Hello xin chào tất cả các bạn, chào mừng các bạn đã quay trở lại với series hướng dẫn xây dựng trang tin tức PHP tại Freetuts. Trong bài học trước chúng ta đã cùng nhau xây dựng trang hiển thị danh sách bài viết cho từng chuyên mục. Và hôm nay, mình sẽ hướng dẫn các bạn viết trang hiển thị nội dung cho một bài viết chỉ định. Nào chúng ta bắt đầu thôi!

1. Hiển thị nội dung bài viết

Các bạn mở file templates/posts.php lên và copy nội dung này vào:

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

<?php

// Get tham số post
$sp = trim(htmlspecialchars(addslashes($_GET['sp'])));
$id = trim(htmlspecialchars(addslashes($_GET['id'])));

// Lấy thông tin bài viết
$sql_get_data_post = "SELECT * FROM posts WHERE id_post = '$id'";
if ($db->num_rows($sql_get_data_post)) {
	$data_post = $db->fetch_assoc($sql_get_data_post, 1);
} else {
	// Nếu không tồn tại 
	require 'templates/404.php';
	exit;
}

?>
<div class="container">
	<div class="row">
		<h1><?php echo $data_post['title']; ?></h1>
		<div class="body-post">
			<?php echo htmlspecialchars_decode($data_post['body']); ?>
		</div>
		<div class="cate-post">
			<?php 

			// In chuyên mục của bài viết
			for ($i = 1; $i <= 3; $i++) {
				$id_cate = $data_post['cate_' . $i . '_id'];
				if ($id_cate) {
					$sql_get_data_cate = "SELECT label, url FROM categories WHERE id_cate = '$id_cate' AND type = '$i'";
					if ($db->num_rows($sql_get_data_cate)) {
						$data_cate = $db->fetch_assoc($sql_get_data_cate, 1);

						echo '<a class="btn btn-primary btn-sm" href="' . $_DOMAIN . 'category/' . $data_cate['url'] . '">' . $data_cate['label'] . '</a> ';
					}
				}
			}

			?>
		</div>
	</div>
	<hr>
	<div class="row">
		<h3>Bài viết liên quan</h3>
		<?php

		// Hiển thị các bài viết liên quan theo chuyên mục của bài viết chỉ định
		$sql_get_invole_post = "SELECT DISTINCT * FROM posts WHERE (cate_1_id = '$data_post[cate_1_id]' OR cate_2_id = '$data_post[cate_2_id]' OR cate_3_id = '$data_post[cate_3_id]') AND status = '1' AND id_post != '$id'";
		// Nếu tồn tại các bài viết liên quan
		if ($db->num_rows($sql_get_invole_post)) {
			// In danh sách bài viết liên quan
			foreach ($db->fetch_assoc($sql_get_invole_post, 0) as $data_post) {
				echo '
					<div class="col-md-3">
	                    <div class="thumbnail">
	                        <a href="' . $_DOMAIN . $data_post['slug'] . '-' . $data_post['id_post'] . '.html">
	                            <img src="' . $data_post['url_thumb'] . '">
	                        </a>
	                        <div class="caption">
	                            <h3><a href="' . $_DOMAIN . $data_post['slug'] . '-' . $data_post['id_post'] . '.html">' . $data_post['title'] . '</a></h3>
	                            <p>' . $data_post['descr'] . '</p>
	                        </div>
	                    </div>
	                </div>
				';
			}
		// Không tồn tại thì thông báo
		} else {
			echo '<div class="well well-lg">Không có bài viết liên quan nào.</div>';
		}

		?>
	</div>
</div>
Trong code này mình đã chú thích một số phần, nên mình chỉ giải thích thêm một chút nữa:

  • Về phần in chuyên mục của bài viết, vì trong table posts của chúng ta có 3 fields chuyên mục nên vòng lặp for sẽ chạy $i từ 1 đến 3.
  • Về phần bài viết liên quan, mình sẽ lấy các bài viết có chung chuyên mục hoặc lớn hoặc vừa hoặc nhỏ với bài viết chỉ định. Các bạn lưu ý phải có lệnh DISTINCT để không select các row giống nhau và điều kiện id_post = '$id' để không select bài viết chỉ định.

Ok, bây giờ các bạn save rồi chạy lại, chúng ta sẽ có kết quả như hình bên dưới:

php trang tin tuc hien thi noi dung bai viet ket qua 1 jpgphp trang tin tuc hien thi noi dung bai viet ket qua 2 jpg

2. Lời kết

Bài này có vẻ hơi ngắn một chút nhưng mình hi vọng các bạn đã nắm rõ cách show một bài viết chỉ định theo url, và đã biết cách show các bài viết liên quan đơn giàn theo chuyên mục. Qua bài sau, chúng ta sẽ cùng nhau xây dựng chức năng tìm kiếm cho project này. Nếu có thắc mắc gì các bạn cứ comment bên dưới hoặc đăng trên group kèm theo link bài viết để được hỗ trợ sớm nhất. Cảm ơn các bạn đã theo dõi, chúc các bạn thành công!

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top