CƠ HỘI ĐẦU TƯ TRONG LỊCH SỬ KHÔNG THỂ BỎ QUA?

HƯỚNG DẪN TOÀN TẬP ĐẦU TƯ VỚI THỊ TRƯỜNG BITCOIN 2020

>> Xem tại đây <<

Trang chủ / PHP cơ bản / Tạo trang hiển thị nội dung bài viết – Tạo website bằng PHP (phần 7)

Tạo trang hiển thị nội dung bài viết – Tạo website bằng PHP (phần 7)

Sau khi đã tạo xong trang hiển thị danh sách bài viết, thì trong bài này mình sẽ tiếp tục hướng dẫn các bạn cách tạo trang hiển thị nội dung bài viết bằng PHP. Các bạn lưu ý là những bài viết của mình thường ít chú tâm đến công đoạn chỉnh sửa, styling cho website đẹp bắt mắt bằng HTML, CSS vì những điều này bạn có thể chỉnh sau khi đã nắm được cách thức tạo website bằng PHP thông qua các bài viết của mình. Vì thế giao diện có xấu xí thì các bạn cũng bỏ qua 🙂

TẠO TRANG HIỂN THỊ NỘI DUNG BÀI VIẾT

Nội dung của chính của bài hướng dẫn hôm nay bao gồm 3 phần:

  1. Ôn lại bài cũ
  2. Thiết kế giao diện trang hiển thị nội dung bài viết
  3. Thực hiện truy vấn thông tin và hiển thị nội dung bài viết

Ôn lại bài cũ

Ở bài hôm trước Tạo trang hiển thị danh sách bài viết, chúng ta đã hoàn thành cơ bản phần hiển thị danh sách bài viết lấy từ cơ sở dữ liệu ra ngoài trang index, và ở dưới mỗi bài hiển thị, chúng ta có thêm đường link là Xem thêm, để khi người ta ấn vào sẽ nhảy sang trang display.php với tham số truyền vào là id của bài viết.

Trong bài viết hôm nay thì chúng ta sẽ tạo trang display.php và hứng tham số id truyền vào này để thực hiện truy vấn thông tin và hiển thị nội dung bài viết.

Thiết kế giao diện trang hiển thị nội dung bài viết

Tại thư mục gốc của folder website mà chúng ta đã tạo ra trong các bài trước, các bạn tạo một file mới và đặt tên là display.php như hình sau

tạo trang display, trang hiển thị nội dung bài viết

Ở file này, chúng ta sẽ có nội dung như sau :

<?php require_once("includes/connection.php"); ?>
<?php include "includes/header.php" ?>
			<div class="innertube">
			</div>
		</main>
	<?php include "includes/menu.php" ?>
<?php include "includes/footer.php" ?>

Các bạn để ý, ở file display.php này so với file index.php sẽ có sự khác nhau nhỏ nhỏ ở đoạn

<?php include "includes/menu.php" ?>

Đó chính là mình đã copy toàn bộ đoạn code html tĩnh là

<nav>
	<div class="innertube">
		<h3>Right heading</h3>
		<ul>
			<li><a href="#">Link 1</a></li>
			<li><a href="#">Link 2</a></li>
			<li><a href="#">Link 3</a></li>
			<li><a href="#">Link 4</a></li>
			<li><a href="#">Link 5</a></li>
		</ul>
		<h3>Right heading</h3>
		<ul>
			<li><a href="#">Link 1</a></li>
			<li><a href="#">Link 2</a></li>
			<li><a href="#">Link 3</a></li>
			<li><a href="#">Link 4</a></li>
			<li><a href="#">Link 5</a></li>
		</ul>
		<h3>Right heading</h3>
		<ul>
			<li><a href="#">Link 1</a></li>
			<li><a href="#">Link 2</a></li>
			<li><a href="#">Link 3</a></li>
			<li><a href="#">Link 4</a></li>
			<li><a href="#">Link 5</a></li>
		</ul>
	</div>
</nav>

bỏ vào file includes/menu.php, sau đó trong file display.php mình chỉ include file menu này vào để nhìn cho code gọn hơn, đỡ rồi rắm chứ không có gì phức tạp cả.

menu trang hiển thị nội dung bài viết

Giờ thì các bạn vào trang index.php và ấn vào link Xem thêm. Các bạn sẽ thấy hiện thị ra trang display.php trống trơn, đó là bởi vì chúng ta chỉ mới tạo giao diện chứ chưa thực hiện truy vấn lấy thông tin bài viết gì cả.

Thực hiện truy vấn thông tin và hiển thị nội dung bài viết

Phần này mình sẽ hướng dẫn các bạn thực hiện hiển thị nội dung bài viết chi tiết như sau.

Đầu tiên các bạn để ý rằng khi chúng ta ấn vào link Xem thêm, ta sẽ được điều hướng tới trang display.php với địa chỉ url có nội dung như sau

localhost/website/display.php?id=xxx

Ở đây, xxx chính là tham số id của bài viết mà chúng ta đã truyền vào ở bài viết trước. Bây giờ chúng ta sẽ thực hiện thấy biến này bằng phương thức GET như sau

$id = intval($_GET['id']);

Sau khi đã lấy được tham số id bài viết, thì ta sẽ thực hiện viết câu query truy vấn thông tin nội dung bài viết từ cơ sở dũ liệu thông qua tham số id này.

// Lấy ra nội dung bài viết theo điều kiện id
$sql = "select * from posts where id = $id";
// Thực hiện truy vấn data thông qua hàm mysqli_query
$query = mysqli_query($conn,$sql);

Sau khi đã thực thi câu query và lấy dữ liệu trả về, ta sẽ tiếp tục hiển thị dữ liệu này ra trang display.php như sau

<div class="innertube">
<?php 
	while ( $data = mysqli_fetch_array($query) ) {
?>
	<h3><?php echo $data['title']; ?></h3></div></ br>
	<i> Ngày tạo : <?php echo $data['createdate']; ?></i>
	<p><?php echo $data['content']; ?></p>
<?php } ?>
</div>

Ở đoạn code trên, chúng ta sẽ echo ra các thông tin bao gồm tiêu đề bài viết (title), ngày tạo bài viết (createdae), và nội dung chính của bài viết (content)

Như vậy, toàn bộ nội dung của trang hiển thị nội dung bài viết sẽ như dưới đây:

<?php require_once("includes/connection.php"); ?>
<?php include "includes/header.php" ?>
<?php
	$id = -1;
	if (isset($_GET["id"])) {
		$id = intval($_GET['id']);
	}
	// Lấy ra nội dung bài viết theo điều kiện id
	$sql = "select * from posts where id = $id";
	// Thực hiện truy vấn data thông qua hàm mysqli_query
	$query = mysqli_query($conn,$sql);
?>
			<div class="innertube">
			<?php 
				while ( $data = mysqli_fetch_array($query) ) {
			?>
				<h3><?php echo $data['title']; ?></h3></div></ br>
				<i> Ngày tạo : <?php echo $data['createdate']; ?></i>
				<p><?php echo $data['content']; ?></p>
			<?php } ?>
			</div>
		</main>
	<?php include "includes/menu.php" ?>
<?php include "includes/footer.php" ?>

Giờ thì các bạn vào lại trang index.php và ấn vào link Xem thêm của một bài viết bất kì, sẽ được chuyển hướng sang trang display.php và hiển thị toàn bộ thông tin đầy đủ của bài viết đó như dưới đây

trang hiển thị nội dung bài viết với thông tin đầy đủ

Tổng kết

Kết thúc bài viết hôm nay, tuy khá dài nhưng bản chất rất đơn giản, chỉ là chúng ta lấy tham số id truyền trên thanh địa chỉ của browser qua phương thức $_GET, sau đó thực hiện truy vấn và hiển thị dữ liệu thông qua tham số id này.

Nếu bạn có bất kỳ thắc mắc nào thì để lại bình luận bên dưới bài này nhé. Nếu bạn muốn cập nhật những bài viết mới nhất từ Kungfu PHP thì để lại thông tin dưới form này và ấn Đăng ký nhé.

 

Có ích

tạo form upload trong php

Tạo phân quyền cho website PHP – Tạo website bằng PHP (Phần 8)

Đi qua một loạt 7 phần trong chuỗi seri Tạo website bằng PHP, trong phần …


Bình luận trực tiếp ↓

23 bình luận

  1. Avatar

    Anh ơi cột id em không để tăng tự động mà có dạng “SP001” thì phải làm sao ạ. Hình như hướng dẫn này chỉ áp dụng cho dữ liệu số :((

    • Avatar

      Anh ơi cột id em không để tăng tự động mà có dạng “SP001” thì phải làm sao ạ. Hình như hướng dẫn này chỉ áp dụng cho dữ liệu số :((
      Update: Em sửa được rồi. Ở dòng $sql bỏ $ trong cặp dấu ‘ là xong. Cho ai gặp giống em.

  2. Avatar

    ad ơi tạo bài chỉnh sửa thông tin bài viết thêm đi. Thanks ad

  3. Avatar

    a có bài nào hướng dẫn up sách dạng file tải lên và xem dạng pdf có nút tải về cho người dùng không ạ em cảm ơn

  4. Avatar

    $id = -1;

    Cho $id = -1; là sao vậy Admin

  5. Avatar

    Bài viết của anh hay quá, rất hiểu và làm theo… chúc anh luôn khỏe, tiếp tục có những bài viết hay phục vụ cộng đồng thiết kế web.
    Mình cũng thống nhất với admin, là tập trung vào code PHP , Mysql… chứ không cần thiết tập trung quá nhiều về giao diện của web, có thể để chỉnh sửa sau, sau khi đã nắm vững PHP

  6. Avatar

    e code theo như a mà soa nó không hiển thị nội dung lên v a???

  7. Avatar

    Anh cho em hỏi sao em chèn ảnh vào bài viết lúc hiển thị lại k có ảnh ạ

  8. Avatar

    a cho e hỏi là làm sao để cho tên từ trong dữ liệu users vào
    $query = mysqli_query($conn,$sql);

    ?>

    Ngày tạo :

  9. Avatar

    Ngoài pưhương thức $_GET ra thì còn dùng phương thức nào tốt hơn nữa không anh.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *