بخش هفتم
مبحث: نمایش لیست اخبار, حذف خبر
---
در این قسمت میخوایم اخباری رو که ارسال کردیم به صورت لیست شده نمایش بدیم! و همچنین خبر های دلخواه رو حذف کنیم.
کد فایل news.php (کد این مرحله) به شرح زیر هست.
کد PHP:
<?php
session_start();
if ( isset($_SESSION['user']) ) {
if ( (isset($_GET['logout'])) && ($_GET['logout'] == "true") )
{
unset ($_SESSION['user']);
header ("Location: index.php");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> مدیریت سایت - مدیریت اخبار</title>
<link href="files/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
include "config.php";
if ( isset($_GET['delete']) && !empty($_GET['delete']) )
{
$del = mysql_query ("DELETE FROM `news` WHERE `id` = '".intval($_GET['delete'])."' LIMIT 1");
if ( $del )
{
$status = '<div class="ok">خبر انتخاب شده با موفقیت از سایت حذف شد</div>';
}
else
{
$status = '<div class="error">مشکلی در حذف خبر وجود دارد!دوباره امتحان کنید</div>';
}
}
?>
<div id="main">
<img src="files/header.jpg" border="0">
<div class="navbar">
<ul>
<li><a href="home.php">داشبورد</a></li>
<li><a href="../index.php" target="_blank">نمایش سایت</a></li>
</ul>
</div>
</div>
<div id="sidebar">
<ul>
<li><a href="home.php">داشبورد</a></li>
<li><a href="addnews.php">ارسال خبر جدید</a></li>
<li><a href="addpage.php">ایجاد صفحه جدید</a></li>
<li><a href="addlink.php">ارسال لینک جدید</a></li>
<li><a href="news.php">مدیریت اخبار</a></li>
<li><a href="pages.php">مدیریت صفحات</a></li>
<li><a href="links.php">مدیریت لینک ها</a></li>
<li><a href="homepage.php">مدیریت صفحه نخست</a></li>
<li><a href="?logout=true"><font color="red">خروج!</font></a></li>
</ul>
</div>
<div class="content">
<div class="top-text">مدیریت اخبار</div>
<php echo $status;?>
<table id="box-table-a">
<thead>
<tr>
<th scope="col">عنوان خبر</th>
<th scope="col">تاریخ ارسال</th>
<th scope="col">ویرایش</th>
<th scope="col">حذف</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="3"><em>در حذف کردن اخبار دقت کنید</em></td>
<td> </td>
</tr>
</tfoot>
<tbody>
<?php
$Query = mysql_query ("SELECT * FROM `news` ORDER BY `id` DESC");
while ( $row_news = mysql_fetch_array($Query) ) {
?>
<tr>
<td><?php echo $row_news['title']; ?></td>
<td><?php echo date("Y/n/d", $row_news['date']) ?></td>
<td><a href="addnews.php?edit=<?php echo $row_news['id']; ?>"><img src="files/news_edit.png" border="0" title="ویرایش خبر" /></a></td>
<td><a onclick="if (confirm('ایا از حذف خبر انتخاب شده مطمئن هستید؟')) window.location = '?delete=<?php echo $row_news['id']; ?>';" href="#"><img src="files/news_delete.png" border="0" title="حذف خبر" /></a></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<div class="clear"></div>
</div>
</body></html>
<?php } else { header ("location: index.php"); } ?>
توضیحات:
در ابتدا داریم:
مثل تمامی فایل های مدیریت, در اینجا هم بررسی میکنیم که کاربر (مدیر) وارد شده یا نه. و کد های معمول html و css
کد PHP:
<?php
session_start();
if ( isset($_SESSION['user']) ) {
if ( (isset($_GET['logout'])) && ($_GET['logout'] == "true") )
{
unset ($_SESSION['user']);
header ("Location: index.php");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> مدیریت سایت - مدیریت اخبار</title>
<link href="files/style.css" rel="stylesheet" type="text/css">
</head>
<body>
سپس ما برای حذف خبر این کد ها رو داریم:
کد PHP:
<?php
include "config.php";
if ( isset($_GET['delete']) && !empty($_GET['delete']) )
{
$del = mysql_query ("DELETE FROM `news` WHERE `id` = '".intval($_GET['delete'])."' LIMIT 1");
if ( $del )
{
$status = '<div class="ok">خبر انتخاب شده با موفقیت از سایت حذف شد</div>';
}
else
{
$status = '<div class="error">مشکلی در حذف خبر وجود دارد!دوباره امتحان کنید</div>';
}
}
?>
خط اول php رو آغاز میکنیم.
در خط دوم ما فایل کانفیگ رو فراخوانی میکنیم.
در خط سوم ما یک شرط میزاریم. میگیم اگه توسط کاربر به مرورگر delete ارسال شد و همچنین مقدار delete خالی نبود اون وقت میگیم: از جدول news سطری رو که بر اساس مقدار delete میگیریم. (مثلا delete=2) حذف کن! وقتی بهش میگیم delete=2 میره بر اساس id اون خبر. سطر رو حذف میکنه
در خط های بعد بررسی میکنیم اگه خبر حذف شد بگو خبر حذف شد و اگه حذف نشد بگو خبر حذف نشد!
--------
در اینجا ما کد های معمولی html قالب رو داریم:
کد HTML:
<div id="main"> <img src="files/header.jpg" border="0"> <div class="navbar"> <ul> <li><a href="home.php">داشبورد</a></li> <li><a href="../index.php" target="_blank">نمایش سایت</a></li> </ul> </div> </div> <div id="sidebar"> <ul> <li><a href="home.php">داشبورد</a></li> <li><a href="addnews.php">ارسال خبر جدید</a></li> <li><a href="addpage.php">ایجاد صفحه جدید</a></li> <li><a href="addlink.php">ارسال لینک جدید</a></li> <li><a href="news.php">مدیریت اخبار</a></li> <li><a href="pages.php">مدیریت صفحات</a></li> <li><a href="links.php">مدیریت لینک ها</a></li> <li><a href="homepage.php">مدیریت صفحه نخست</a></li> <li><a href="?logout=true"><font color="red">خروج!</font></a></li> </ul> </div> <div class="content"> <div class="top-text">مدیریت اخبار</div> <php echo $status;?>
--------------
خب ما در اینجا یک جدول ایجاد میکنیم. که لیست اخبار رو داخل اون نمایش بدیم!
کد PHP:
<table id="box-table-a">
<thead>
<tr>
<th scope="col">عنوان خبر</th>
<th scope="col">تاریخ ارسال</th>
<th scope="col">ویرایش</th>
<th scope="col">حذف</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="3"><em>در حذف کردن اخبار دقت کنید</em></td>
<td> </td>
</tr>
</tfoot>
<tbody>
<?php
$Query = mysql_query ("SELECT * FROM `news` ORDER BY `id` DESC");
while ( $row_news = mysql_fetch_array($Query) ) {
?>
<tr>
<td><?php echo $row_news['title']; ?></td>
<td><?php echo date("Y/n/d", $row_news['date']) ?></td>
<td><a href="addnews.php?edit=<?php echo $row_news['id']; ?>"><img src="files/news_edit.png" border="0" title="ویرایش خبر" /></a></td>
<td><a onclick="if (confirm('ایا از حذف خبر انتخاب شده مطمئن هستید؟')) window.location = '?delete=<?php echo $row_news['id']; ?>';" href="#"><img src="files/news_delete.png" border="0" title="حذف خبر" /></a></td>
</tr>
<?php } ?>
</tbody>
</table>
ما ابتدا جدول اخبار رو انتخاب میکنیم. و با حلقه while میگیم اخبار رو لیست کن. بر اساس id هر خبر...
و ما با row_news مقدار هر فیلد رو برمیگردونیم.
در اخر هم حلقه whileرو میبندیم
--------------
در آخر هم (مثل همیشه) شرط بررسی ورود مدیر رو میبندیم
کد PHP:
</div>
<div class="clear"></div>
</div>
</body></html>
<?php } else { header ("location: index.php"); } ?>
دوستان . از این مرحله به بعد برای ارسال صفحه,ارسال لینک,مدیریت صفحه و مدیریت لینک دقیقا باید همین مراحلی که برای ارسال اخبار رفتیم رو طی کنیم! یعنی هیچ فرقی نداره! فقط باید به جای جدول news که اخبار باشه جدول صفحات و لینک ها رو انتخاب کنیم. تنها ممکنه تعداد فیلد ها تفاوت داشته باشه!
بنابر این اگه این دو مرحله (صفحه ارسال خبر و صفحه مدیریت اخبار) رو خوب فهمیده باشید بقیه مراحل براتون تکراری هست! و بسیار ساده...