والآن انشيء ملف جديد بمجلد admin وقم بتسميته section_edit.php ثم ضع الكود التالي بداخله
- اقتباس :
- <?php
include("../config.php");
$id = intval($_GET['id']);
$query = mysql_query("SELECT * FROM story_cat where id=$id");
$info_cat = mysql_fetch_array($query);
echo "<form method='POST' action='section_update.php'>
<input type='hidden' name='id' value='$info_cat[id]'>
<div align='center'>
<center>
<table border='1' cellpadding='2' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber2' dir='rtl'>
<tr>
<td width='30%'>إسم القسم :</td>
<td width='70%'><input name='name' size='60' value='$info_cat[name]'></td>
</tr>
<tr>
<td width='30%'>صورة القسم :</td>
<td width='70%'><input name='image' size='60' value='$info_cat[image]'></td>
</tr>
<tr>
<td width='30%'>ترتيب القسم :</td>
<td width='70%'><input name='order_cat' size='60' value='$info_cat[order_cat]'></td>
</tr>
<tr>
<td width='30%'>القسم الرئيسي :</td>
<td width='70%'>
<select size='1' name='sub'>
<OPTION value='0'>قسم رئيسي</OPTION>";
$sql = mysql_query ("SELECT id,name FROM story_cat where sub='0' order by id") or die ("error");
while($sub = mysql_fetch_array($sql))
{
if($sub['id'] == $info_cat['sub']){
echo "<option value='$sub[id]' selected>$sub[name]</option>";
}else{
echo "<option value='$sub[id]'>$sub[name]</option>";
}
}
echo "</select>
</td>
</tr>
<tr>
<td width='100%' colspan='2' align='center'><input type='submit' value=' تعديل البيانات ' name='xxx'></td>
</tr>
</table>
</center>
</div>
</form>";
?>
شرح الكود :
اول سطر هو لملف الاتصال بقاعدة البيانات وستلاحظ وجود الكود التالي تحته مباشرة
- اقتباس :
- <?
$id = intval($_GET['id']);
?>
استخدمنا المصفوفه $_GET وهي خاصه بجلب البيانات من عنوان الصفحه على عكس المصفوفه $_POST فهي تأتي بالبيانات من الفورم او النموذج تبع ادخال البيانات .
ماعلينا هالحين خلوني اوضح شويه المصفوفه $_GET وهي كما قلنا انها تأخذ المتغيرات والبيانات من رابط عنوان الصفحه بحيث اذا كان الرابط هكذا :
section_delete.php?id=3
فيجب علينا اخبار المصفوفه $_GET بأننا نريد جلب بيانات المتغير id من الرابط السابق وهي بالطبه رقم 3 وستكون المصفوفه هكذا
- اقتباس :
- <?
$id = $_GET['id'];
?>
فرضا عنوان الصفحه كالتالي :
section_delete.php?namecat=bwady
فهنا المتغير هو namecat وبيانات المتغير هي bwady
وستكون كتابة المصفوفه هكذا
- اقتباس :
- <?
$id = $_GET['namecat'];
?>
وسيتم عرض الناتج bwady
اعتقد الحين واااااااضحه الطبخه >>>> ولو تلاحظ اننا استعملنا الداله intval ومررنا المصفوفه عليها ياااااااااااااااترى ليش ؟؟
بكل بساطه لأن الدالة intval تعديل قيمة المتغير الى رقم ولاتقبل النصوص نهائيا سوى الأرقام حتى واذا تم التحايل عليها وتم كتابة نص مثلا بهذه الحاله سيتم ارجاع القيمه الى رقم وليس نص يعني تستخدم للأمان في php .
وتكتب هكذا
- اقتباس :
- <?
$id = intval($_GET['id']);
?>
ثم كتبنا استعلام لجلب بيانات القسم بشرط ان يكون رقم id يساوي $id كما في الكود
- اقتباس :
- <?
$query = mysql_query("SELECT * FROM story_cat where id=$id");
$info_cat = mysql_fetch_array($query);
?>
ثم عملنا form عادي وكتبنا الأكشن تبعه (( صفحة الاستقبال للفوم )) هي section_update.php
- اقتباس :
- <form method='POST' action='section_update.php'>
والآن ستجد بداخل الفورم كود
- اقتباس :
- <input type='hidden' name='id' value='$info_cat[id]'>
وتلاحظ انه حقل عادي ولكن نوعه hidden يعني مخفي ولا يتم عرضه بالصفحه وجعلنا اسمه id وقيمته $info_cat[id] أي رقم id تبع القسم وسيتم استعمال هذا الرقم في الصفحه التي تستقبل البيانات وهو ضروري جدا ليتم تحديد القسم المراد تحديث بياناته في صفحة الاستقبال للبيانات .
ثم عملنا جدول بالفرونت بيج ذو حقلين ووضعنا بداخل الفورم وبداخل الجدول ستجد خانات ادخال النصوص لها اسم ولها قيمه !!
لاحظ :
- اقتباس :
- <input name='name' size='60' value='$info_cat[name]'>
<input name='image' size='60' value='$info_cat[image]'>
<input name='order_cat' size='60' value='$info_cat[order_cat]'>
لاحظ ان القيمة (value) تم جلبها من قاعدة البيانات وان الاسم لكل حقل مختلف عن الآخر وللعلم اسم الحقل تقدر تغيره لأي اسم تبيه بشرط انك وقت الاستقبال للبيانات تضع الاسم تبع الحقل اللي وضعه بمصفوفه حتى يتم التعرف عليه .
وبالأسفل ستلاحظ وجود استعلام آخر وهو
- اقتباس :
- <?
$sql = mysql_query ("SELECT id,name FROM story_cat where sub='0' order by id") or die ("error");
while($sub = mysql_fetch_array($sql))
{
if($sub['id'] == $info_cat['sub']){
echo "<option value='$sub[id]' selected>$sub[name]</option>";
}else{
echo "<option value='$sub[id]'>$sub[name]</option>";
}
}
?>
وهو خاص بالقسم الفرعي وقم تم جلب البيانات ووضعها في قائمه منسدله ولك ان تختار من القسم الفرعي الذي تريد او اعادة القسم الفرعي الى قسم رئيسي .
ولاحظ وجود شرط بمنتصف حلقة التكرار وهو اذا كان فرعي سيتم تحديده تلقائيا من القائمه بحيث ان رقم id يساوي رقم sub في القسم الذي سيتم تعديله .
وبأخير الكود ستجد زر تعديل البيانات فلا داعي لشرحه لأنه واضح .
ثم بالأخير يتم اغلاق وسم الفورم ووسم الجدول .
وانتهى شرح الملف section_edit.php .