آموزش کامل PHP – قسمت 17: ایجاد صفحه اختصاصی برای هر پست

ایجاد صفحه اختصاصی برای هر پست

برای ایجاد صفحه جداگانه برای هر کدام از پست ها باید از مشخصه ای یکتا در هر پست استفاده کنیم. برای این کار ما از مشخصه id در جدول پست استفاده می کنیم.در ادامه آموزش جلسه قبل تغییراتی در کد فایل index.php ایجاد می کنیم. برای این منظور بعد از خط هفدهم برنامه یعنی دستور:

$postText = $fetch_result[‘text’];

یک دستور جدید اضافه می کنیم:

$postId = $fetch_result[‘id’];

دستور فوق id هر پست را در هر بار اجرای حلقه دریافت کرده و در متغییری به نام postId$ ذخیره می کند.

حال کد:

echo “<h2>$postTitle</h2>”;

را به به صورت زیر تغییر می دهیم.

echo “<h2><a href=single.php?id=$postId>$postTitle</a></h2>”;

به این ترتیب یک لینک منحصر به فرد برای هر پست ایجاد می شود. حالا اگر مثلا روی مطلب اول کلیک کنیم به لینک http://127.0.0.1/cms/singe.php?id=1 منتقل خواهیم شد که در واقع لینک مخصوص به مطلب اول در صفحه ای اختصاصی و جداگانه است.

الان به راحتی می توانیم با کد های php اطلاعات هر پست را با توجه به آی دی آن در صفحه ای اختصاصی نمایش دهیم. برای این کار یک فایل به نام single.php در پوشه cms ایجاد می کنیم و کد های زیر را در آن قرار می دهیم.

<!DOCTYPE html>

<html dir="rtl" lang="fa-IR">

<head>

<title>مشاهده پست</title>

<meta charset="utf-8" />

</head>

<body style="font-family: tahoma; font-size:14px;">

<center>

<?php

include ("config.php");

$pid = $_GET['id'];

//select all records from posts table

$get_query = mysql_query("SELECT * FROM `posts` WHERE `id` = '$pid' ");

$fetch_result = mysql_fetch_array($get_query);

$postTitle = $fetch_result['title'];

$postText = $fetch_result['text'];

echo "<h2>$postTitle</h2>";

echo "<p>$postText</p><hr>";

?>

</center>

</body>

</html>

کد فوق تقریبا شبیه به فایل index.php است، فقط با تغییراتی در کوئری و این که دیگر نیازی به حلقه نیست. این بار قصد داریم فقط یک رکورد از جدول واکشی کنیم.

در کوئری نوشته شده، پستی که آی دی آن برابر با آدی دی پستی است که لینک آن به این صفحه ارسال شده، از جدول خوانده می شود.