المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس الخامس (إضافة خبر أو موضوع)


زعيم التقنية
23-Jun-2008, 05:52 PM
السلام عليكم ورحمة الله وبركاته
في الجزء السابق تم شرح طريقة تعديل وحذف الأقسام
وتم الانتهاء من الاقسام شرحا وتفصيلا .
والآن بهذا الموضوع سنقوم بشرح طريقة إضافة خبر جديد أو موضوع جديد .

قم بإنشاء ملف جديد في مجلد admin وقم بتسميته add_news.php وهالملف خاص بالنموذج الذي يحتوي حقول اضافة القصه لقاعدة البيانات ويحتوي على :
- عنوان القصة .
- كاتب القصة .
- ترتيب القصة .
- موضوع القصة .
- قسم القصة .
وسيتم إدراح تاريخ الإضافة تلقائيا لقاعدة البيانات بهذه الصورة 15/8/2007
قم بوضع الكود التالي في الملف :

<form method="post" action="insert_news.php">
<div align="center">
<center>
<table border="1" cellpadding="2" style="border-collapse: collapse" bordercolor="#111111" width="98%" id="AutoNumber1" dir="rtl">
<tr>
<td width="100%" colspan="2">
<p align="center">إضافة خبر جديد</td>
</tr>
<tr>
<td width="20%">عنوان الخبر :</td>
<td width="80%"><input size="60" name="name"></td>
</tr>
<tr>
<td width="20%">مصدر الخبر :</td>
<td width="80%"><input size="60" name="writer"></td>
</tr>
<tr>
<td width="20%">ترتيب الخبر :</td>
<td width="80%"><input size="60" name="order_story"></td>
</tr>
<tr>
<td width="20%">موضوع الخبر :</td>
<td width="80%"><textarea name="text" rows="6" cols="70"></textarea></td>
</tr>
<tr>
<td width="20%">القسم الخاص بالخبر :</td>
<td width="80%">
<select size="1" name="cat">
<?php
include("../config.php");
$sql = mysql_query ("SELECT id,name FROM news_cat order by id desc")
or die ("error");
while($cat=mysq l_fetch_array($ sql))
{
echo "<OPTION value='$cat[id]'>$cat[name]</OPTION>";
}
?>
</select>
</td>
</tr>
<tr>
<td width="100%" colspan="2">
<p align="center"><input type="submit" value="إضافة" name="xxx"></td>
</tr>
</table>
</center>
</div>
</form>

طبعا واضح من الكود ان نموذج اما كما يحلو للمبرمجين ان يسمونه فورم form
في بداية السطر مكتوب
<form method="post" action="insert_news.php">

حيث ان نوعية الإرسال هي post والملف اللي سترسل له البيانات هو insert_news.php
ثم ستجد بداخل وسم الفورم جدول تم صياغته بالفرونت بيج يحتوي على حقلين اثنين ويحتوي على خانات ادخال نصوص وكل حقل منها يحتوي على اسم خاص به في حقول قاعدة البيانات .
input size="60" name="name">
<input size="60" name="writer">
<input size="60" name="order_story">
وايضا ستلاحظ وجود حقل من نوع textarea
<textarea name="text" rows="6" cols="70"></textarea>

يستخدم لكتابة المواضيع الكبيره التي تتعدد فيها الأسطر .
وايضا يوجد هذا الكود
<?
include("../config.php");
$sql = mysql_query ("SELECT id,name FROM news_cat order by id desc")
or die ("error");
while($cat=mysq l_fetch_array($ sql))
{
echo "<OPTION value='$cat[id]'>$cat[name]</OPTION>";
}
?>
وهو لجلب بيانات الأقسام كامله وقد حددنا id,name فقط لأن لاحاجة لنا ببقية حقول الجدول ... ووضعنا الاستعلام في قائمة منسدله لكي نختار القسم المناسب لنا .
وفي اسفل الكود ستجد زر الإضافة .
انتهى شرح الملف add_news.php
=============== ==============
والآن قم بإنشاء ملف استقبال البيانات من الفورم السابق وقم بتسميته insert_news.php طبعا في مجلد admin واكتب به الاستعلام التالي :
<?
include("../config.php");
$d = date("d");
$m = date("m");
$y = date("Y");
$Xdate = "$d/$m/$y";
$name = addslashes($_PO ST['name']);
$writer = addslashes($_PO ST['writer']);
$order_story = addslashes($_PO ST['order_story']);
$text = addslashes($_PO ST['text']);
$cat = $_POST['cat'];
if ($name == "" OR $text == "" OR $cat == ""){
echo "<div align='center'>قم بكتابة عنوان للقصة أو لايوجد موضوع للقصة أو لايوجد قسم <a href='********* *:history.back( 1)'>عودة للخلف</a></div>";
}else{
$query = @mysql_query ("INSERT INTO news (name,writer,ca t,order_story,t ext,date)
VALUES
('$name','$writ er','$cat','$or der_story','$te xt','$Xdate')") or die ("error query");
echo "<p align=center>تمت الاضافه بنجاح</p>";
}
?>
بدل النجوم ***** اكتب j a v a s c ri p t بدون مسافات
قمنا بتضمين ملف الاتصال بقاعدة البيانات اولا ثم استخدمنا الدالة date لكتابة التاريخ في متغيرات هكذا :
<?
$d = date("d");
$m = date("m");
$y = date("Y");
$Xdate = "$d/$m/$y";
?>

وتم تجميع اليوم والشهر والسنه بالأرقام في المتغير $Xdate
ثم استقبلنا المتغير التي تم ارسالها من الفورم السابق بالمصفوفه $_POST
<?
$name = addslashes($_PO ST['name']);
$writer = addslashes($_PO ST['writer']);
$order_story = addslashes($_PO ST['order_story']);
$text = addslashes($_PO ST['text']);
$cat = $_POST['cat'];
?>

وكل حقل نصي استخدمنا معاه الدالة addslashes حتى لا تواجهنا مشاكل في اضافة المعلومات لقاعدة البيانات >> تم شرحها بأحد الأجزاء السابقه .
ثم استخدما الشرط التالي :
<?
if ($name == "" OR $text == "" OR $cat == ""){
?>

بحيث اذا كانت الحقول (( العنوان أو الموضوع أو القسم )) فارغه سيتم عرض رساله لك ولن تتم اضافة البيانات الى القاعده واذا كانت ليست فارغه فسيتم اضافة البيانات للقاعدة مباشرة
<?
$query = @mysql_query ("INSERT INTO news (name,writer,ca t,order_story,t ext,date)
VALUES
('$name','$writ er','$cat','$or der_story','$te xt','$Xdate')") or die ("error query");
?>

هذا وقد تم الانتهاء من شرح الملف insert_news.php .

والله ولي التوفيق

al_fanar
23-Jun-2008, 07:04 PM
بارك الله بك.... شرح جدا مفهوم ورائع

جعله في موازين حسناتك ~

أبو جبلو
24-Jun-2008, 06:16 PM
جزاكم الله خيرا