السلام عليكم ورحمه الله
كنت قد نوهت من قبل
على دروس فى نظام الـ CMS على هذا الرابط
واليوم سنشرح كيفيه عمل نظام أخبار متطور جداً ..
به تعليقات
ومعه ملف config
وصفحه لإضافه الأخبار أيضاً..
نبدأ ..
فى البدايه يجب ان نكون 3 صفحات فقط وهم :
- config.php
- news.php
- addnews.php
نبدأ أولاً يزرع بعض المدخلات فى قاعده البيانات
كود:
CREATE TABLE news (
id int(11) NOT NULL auto_increment,
title varchar(50) default NULL,
author varchar(30) default NULL,
content text,
postdate varchar(100) default NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM;
CREATE TABLE comments (
id int(10) NOT NULL auto_increment,
nid int(10) default NULL,
author varchar(30) default NULL,
`comment` text,
PRIMARY KEY (id)
) ENGINE=MyISAM;
وهذه الخطوة لعمل الجداول داخل قاعده البيانات
نأتى للملفات
أنسخ الكود التالى وضعه فى ملف وقم بتسميته config.php
كود:
<?php
$db_name = "database";
$db_user = "username";
$db_pass = "password";
$db_host = "localhost";
mysql_connect("$db_host", "$db_user", "$db_pass")or die(mysql_error());
mysql_select_db("$db_name") or die(mysql_error());
$news_displaymax = "10";
?>
طبعا بتعدل مدخلات المتغيرات الأولى .. إلى معلومات قواعد البيانات
الكود اللى بعد المتغيرات هو الكود الخاص بالإتصال بقاعده البيانات عن طريق mysql_connect
والمتغير news_displaymax هو عدد الأخبار المتاح له بالظهور
نأتى الآن لصفحه الأخبار .. وهى صفحه معقده تقريبا 
انا وضعت الشرح داخل الكود
كود:
<?php
include "config.php";
switch($_GET['act']){
case 'view':
$id = $_GET['id'];
$sql = "SELECT * FROM news WHERE id=$id";
$sql2 = "SELECT * FROM comments where nid=$id ORDER by id ASC";
$getone = mysql_query($sql)
or die(mysql_error());
$getcomments = mysql_query($sql2);
if (mysql_num_rows($getone) == "0") {
echo 'لا يمكننا العثور على أى مقالات تمت كتابتها فى قاعده البيانات';
exit();
}
$row = mysql_fetch_array($getone)
or die(mysql_error());
//هنا وضعناهم فى متغيرات .. أسهل على ما أظن.
$nid = $row['id'];
$ntitle = $row['title'];
$ncontent = $row['content'];
$nauthor = $row['author'];
$postdate = $row['postdate'];
//هذا هو التصميم ...
echo ("<TABLE width=400>\n
<TR><TD><b>$ntitle<b></TD>\n</tr>
<TR><TD>تمت كتابته بواسطه $nauthor فى $postdate<br>\n
-------------------------------------------------------------------------------</td></tr>\n
<tr><td>$ncontent</td></tr>\n
<tr><td><hr color=\"#820000\"></td></tr>\n
<tr><td><br><hr color=\"#820000\"></td></tr>\n
<tr><td><b>التعليقات:</b></td></tr>");
while($rowc= mysql_fetch_array($getcomments))
{
//مرة أخرى نضع البيانات فى متغيرات
$cauthor = $rowc['author'];
$cdata = $rowc['comment'];
$plink = "";
$pend = "";
//هنا نقوم بطباعه التعليقات
echo ("<div class=\"comments\">");
echo ("<tr><td>التعليق بواسطه: $plink $cauthor $pend</td></tr>\n
<tr><td>-------------------------------------------------------------------------------</tr></td>\n
<tr><td>$cdata</td></tr>\n
<tr><td>-------------------------------------------------------------------------------<br><br><br><br></td></tr>");
echo ("</div>");
}
//هنا نكون الفورم لإدراج العليقات
echo ("<tr><td><b>التعليق:</b></td></tr>\n
<tr><td><form method=\"POST\" action=\"?act=comment&nid=$nid\">\n
<textarea name=comment rows=\"7\" cols=\"30\"></textarea><br>\n
<input type=\"submit\" name=\"addcomment\" value=\"أضف تعليقى\"></td></tr>
<tr><td><a href=\"index.php\">إذهب بى إلى الرئيسيه</a></td></tr>"); //ضع لنك خاص بك أو حررة كما تريد
echo "</TABLE>";
break; // نغلق
case 'comment': //نسوى سويتش جديد
if (!$_POST['addcomment']) //لو حاول الزائر الوصول للصفحه دون عمل تعليق .. يظهر الإيرور
{
echo "حدث خطأ..ّ يجب ان تكتب شيئا وتقوم بإعتماده";
exit();
}else{ //إلا إذا
$nid = $_GET['nid']; //get $nid
$commentor = "Guest";
$ccontent= nl2br( strip_tags($_POST['comment'],"<b><i><u><a><font>"));
$sql = "INSERT INTO comments (nid,author,comment) VALUES('$nid','$commentor','$ccontent')"; //تكوين الـ SQL
$addedcomments = mysql_query($sql) //نضع المدخلات داخل متغيرات
or die(mysql_error());
echo "شكرا لك .. لقد تم إضافه تعليقك ,, نرجو الإنتظار حتى يتم نقلك";
echo "<meta http-equiv=\"Refresh\" content=\"0; URL=?act=view&id=$nid\"/>"; //كود التحويل
}
break;
default:
$sql = "SELECT * FROM news order by id desc LIMIT $news_displaymax";
$getnews = mysql_query($sql) //query the sql
or die(mysql_error());
if (mysql_num_rows($getnews) == "0")
{
echo '<center>لا يوجد أخبار فى الوقت الحالى .. يمكنك زيارتنا لاحقاً</center>'; // إذا لم يجد اى معلومات مخزنه .. يطبع هذه الرساله
}
while($news = mysql_fetch_array($getnews)){
//وضع البيانات فى متغيرات
$nid = $news['id'];
$ntitle = $news['title'];
$ncontent = $news['content'];
$nauthor = $news['author'];
$postdate = $news['postdate'];
$csql = "SELECT * FROM comments WHERE nid=$nid"; //SQL
$count = mysql_query($csql); //إدخال
$cnum = mysql_num_rows($count); //عدد الجداول
//تكوين تصميم الأخبار
echo ("<TABLE width=400>\n
<TR><TD><hr color=\"#820000\"><br><b><a href=\"?act=view&id=$nid\">$ntitle<b></a></TD>\n</tr>
<TR><TD>تمت كتابته بواسطه $nauthor فى $postdate<br>\n
-------------------------------------------------------------------------------</td></tr>\n
<tr><td>$ncontent<br>\n
-------------------------------------------------------------------------------
<align=right><a href=\"?act=view&id=$nid\">تعليق($cnum)</a><br><br><hr color=\"#820000\"></td></tr>
</TABLE>\n");
}
break;
}
?>
أحفظ هذا الملف بإسم news.php
الآن صفحه إضافه الأخبار
كود:
<?php
include "config.php";
if (!$_POST['submit']) {
echo (" <table>
<form method=\"post\">
<tr><td>
<strong>العنوان:</strong>
</td><td>
<input type=\"text\" name=\"title\" value=\"Title\">
</td></tr>
<tr><td>
<strong>صاحب المقال:</strong>
</td><td>
<input type=\"text\" name=\"author\" value=\"Author\">
</td></tr>
<tr><td colspan=\"2\">
<textarea rows=14 cols=70 name=\"news\">الخبر أو المقال</textarea>
</td></tr>
<tr><td colspan=\"2\">
<input type=\"submit\" name=\"submit\" Value=\"أعتمد الخبر\">
</td></tr>
</form></table>");
}else{
$author = $_POST['author'];
$news = $_POST['news'];
$title = $_POST['title'];
$postdate = date("g:i A, l F j");
$addsql = "INSERT into news (author,content,title,postdate) VALUES('$author','$news','$title','$postdate')";
$addnews = mysql_query($addsql)
or die(mysql_error());
echo "تم إضافه الخبر .. شكرا لك لإستعمال نظام الأخبار المقدم من مدرسة بكسلز.<br><a href=\"http://www.pxllz.com\">الدخول إلى المدرسه</a>";
}
?>
كود سهل وخفيف ويشرح نفسه ..
احفظ هذا المف بإسم addnews.php
وألف مبروك عليك
لإضافه صفحه الاخبار وإدراجها بأى صفحه
ضع الكود التالى فقط
كود:
<?php
include("news.php");
?>
وتحياتى لكم
وأتمنى يكون الدرس مفيد .. منتظر التطبيقات :nice: