السلام عليكم
أولاً : بخصوص إضافة رابط لكل قسم :
كود PHP:
<?php
include("config.php");
// ?????? ??????? ????????
$sql = mysql_query("SELECT * FROM cat");
$num = mysql_num_rows($sql);
for($i=1;$i<=$num;$i++)
{
$row = mysql_fetch_array($sql);
$cat_title = $row[name];
$cat_id = $row[cat_id];
echo"+ <a href=show_cat.php?cat_id=$cat_id>$cat_title</a><br>";
$sql1 = mysql_query("SELECT * FROM child_cat WHERE cat_id=$cat_id");
$num1 = mysql_num_rows($sql1);
for($z=1;$z<=$num1;$z++)
{
$row1 = mysql_fetch_array($sql1);
echo" - <a href=show_child_cat.php?child_id=$row1[child_id]&cat_id=$cat_id>$row1[name]</a><br>";
}
}
?>
و في صفحة العرض سأختار ملف show_child_cat.php لأنه نفس الفكرة في show_cat.php
كود PHP:
<?php
include("config.php");
$sql = mysql_query("SEELCT * FROM cat WHERE cat_id=$cat_id");
$row = mysql_fetch_array($sql);
$sql1 = mysql_query("SELECT * FROM child_cat WHERE child_id=$child_id AND cat_id=$cat_id");
$row1 = mysql_fetch_array($sql1);
echo"أهلاً و سهلاً في المنتدى الفرعي $row1[name] .. المنتدى الرئيسي $row[name]";
// غلق الاتصال
?>
ثانياً : بخصوص الحذف :
سأقوم بإضافة رابط الحذف في نفس صفحة العرض :
كود PHP:
<?php
include("config.php");
// ?????? ??????? ????????
$sql = mysql_query("SELECT * FROM cat");
$num = mysql_num_rows($sql);
for($i=1;$i<=$num;$i++)
{
$row = mysql_fetch_array($sql);
$cat_title = $row[name];
$cat_id = $row[cat_id];
echo"+ <a href=show_cat.php?cat_id=$cat_id>$cat_title</a> <a href=del_cat.php?cat_id=$cat_id>حذف</a><br>";
$sql1 = mysql_query("SELECT * FROM child_cat WHERE cat_id=$cat_id");
$num1 = mysql_num_rows($sql1);
for($z=1;$z<=$num1;$z++)
{
$row1 = mysql_fetch_array($sql1);
echo" - <a href=show_child_cat.php?child_id=$row1[child_id]&cat_id=$cat_id>$row1[name]</a>
<a href=del_child_cat.php?child_id=$row1[child_id]&cat_id=$cat_id>حذف</a>
<br>";
}
}
?>
و في صفحة الحذف ساختار ملف del_child_cat.php
كود PHP:
<?php
include("config.php");
$sql = mysql_query("DELETE FROM child_id WHERE child_id=$child_id AND cat_id=$cat_id ");
// غلق الاتصال
?>
ثالثاً : بخصوص التعديل أو التحرير
سأقوم بإضافة رابط التعديل في نفس صفحة العرض :
كود PHP:
<?php
include("config.php");
// ?????? ??????? ????????
$sql = mysql_query("SELECT * FROM cat");
$num = mysql_num_rows($sql);
for($i=1;$i<=$num;$i++)
{
$row = mysql_fetch_array($sql);
$cat_title = $row[name];
$cat_id = $row[cat_id];
echo"+ <a href=show_cat.php?cat_id=$cat_id>$cat_title</a> <a href=del_cat.php?cat_id=$cat_id>حذف</a>
<a href=edit_cat.php?cat_id=$cat_id>تحرير</a>
<br>";
$sql1 = mysql_query("SELECT * FROM child_cat WHERE cat_id=$cat_id");
$num1 = mysql_num_rows($sql1);
for($z=1;$z<=$num1;$z++)
{
$row1 = mysql_fetch_array($sql1);
echo" - <a href=show_child_cat.php?child_id=$row1[child_id]&cat_id=$cat_id>$row1[name]</a>
<a href=del_child_cat.php?child_id=$row1[child_id]&cat_id=$cat_id>حذف</a>
<a href=edit_child_cat.php?child_id=$row1[child_id]&cat_id=$cat_id>تحرير</a>
<br>";
}
}
?>
في صفحة edit_child_cat.php يجب عليك ملاحظة الآتي : أن معلومات القسم الفرعي يجب أن تظهر في الفورم ،
أما في القائمة المنسدلة للأقسام الرئيسية يجب أن تظهر جميع الأقسام الرئيسية و نعمل selected للقسم الرئيسي الحالي :
كود PHP:
<?php
include("config.php");
$sql = mysql_query("SELECT * FROM cat");
$num = mysql_num_rows($sql);
$sql1 = mysql_query("SELECT * FROM child_cat WHERE child_id=$child_id AND cat_id=$cat_id");
$row1 = mysql_fetch_array($sql1);
echo"<form action=edit1.php method=post>";
echo"اسم القسم الفرعي : <input type=text name=edit_child_name value='$row1[name]'>";
echo"<br>";
echo"<select name=edit_cat_id>";
for($i=1;$i<=$num;$i++)
{
$row = mysql_fetch_array($sql);
if($cat_id == $row[cat_id])
{
$selected = "selected";
}
else
{
$selected = "";
}
echo"<option value=$row[cat_id] $selected>$row[name]</option>";
}
echo"<select>";
echo"<br>";
echo"<input type=submit value=تحرير>";
echo"</form>";
//غلق الاتصال
و الآن التعديل سيكون بسيط ، في صفحة edit1.php
كود PHP:
<?php
include("config.php");
$sql = mysql_query("UPDATE child_cat SET name='$edit_child_name' , cat_id=$edit_cat_id");
// غلق الاتصال
?>
يمكنك إضافة بعض التطويرات للسكريبت :
1 - التأكد من خلو القيم النصية من أي نص ضار بقاعدة البيانات
2 - التأكد من أن القيم الرقمية هي رقمية بالفعل
3 - التأكد من أن جميع البيانات المطلوبة معبأة
4 - إضافة وصف - صورة لكل قسم
5 - استخدام نظام الإشراف على كل قسم
4 - يمكن جعل جميع الأقسام بجدول واحد سواء الرئيسية أو الفرعية مع بعض التغييرات في حقول الجدول
كود PHP:
Create Table cat(
cat_id int not null primary key auto_increment,
name varchar(50) not null,
is_cat int not null,
is_child int not null,
main_cat_id int not null
);
هذا تصوري للجدول :
- الحقل is_cat تضع القيمة 1 إن كان قسماً رئيسياً و القيمة 0 إن لم يكن
- الحقل is_child تضع القيمة 1 إن كان قسماً فرعياً و القيمة 0 إن لم يكن
- الحقل main_cat_id هو الـcat_id للقسم الرئيسي إن كان القسم فرعياً
و أشكر الأخ b_happy على إضافته
تحياتي
Dr.no