<?php
define('ISEN', 0); //定义是否为中英双语版 0为否 1为是
//连接MySQL服务器并打开数据库
$db = mysql_connect('localhost', 'root', '753951') or die('无法连接数据库!');
mysql_select_db('procates', $db) or die(mysql_error($db));
if (isset($_POST['submitted'])) {//如果用户提交了表单则处理用户请求
if (isset($_POST['cateid']) && ($_POST['cateid'] == 0)) {//如果是添加分类
if (ISEN == 0) { //如果仅为中文版
$catename = (isset($_POST['catename'])) ? trim($_POST['catename']) : '';
$fat_id = (isset($_POST['cate_fid'])) ? (int)$_POST['cate_fid'] : 0;
if ($catename != '') {
$query = 'INSERT INTO pro_cates (fat_id, catename) VALUES '.
'('. $fat_id .', "'. mysql_real_escape_string($catename, $db) .'")';
mysql_query("set names 'utf8'");
mysql_query($query, $db) or die(mysql_error($db));
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo "<script>alert('添加分类成功!');location.href='manage.php';</script>";
}
else {
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo "<script>alert('分类名称不能为空!');location.href='manage.php';</script>";
}
}
else
{ //如果是中英双语版,同时写入分类英文名称
$catename = (isset($_POST['catename'])) ? trim($_POST['catename']) : '';
$catename_en = (isset($_POST['catename_en'])) ? trim($_POST['catename_en']) : '';
$fat_id = (isset($_POST['cate_fid'])) ? (int)$_POST['cate_fid'] : 0;
if ($catename != '' && $catename_en != '') {
$query = 'INSERT INTO pro_cates (fat_id, catename, catename_en) VALUES '.
'('. $fat_id .', "'. mysql_real_escape_string($catename, $db) .'", "'. mysql_real_escape_string($catename_en, $db) .'")';
mysql_query("set names 'utf8'");
mysql_query($query, $db) or die(mysql_error($db));
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo "<script>alert('添加分类成功!');location.href='manage.php';</script>";
}
else {
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo "<script>alert('分类名称不能为空!');location.href='manage.php';</script>"; }
}
}
else {//如果是编辑分类
if (ISEN == 0) { //如果仅为中文版
$catename = (isset($_POST['catename'])) ? trim($_POST['catename']) : '';
$fat_id = (isset($_POST['cate_fid'])) ? (int)$_POST['cate_fid'] : 0;
$cateid = (isset($_POST['cateid'])) ? (int)$_POST['cateid'] : 0;
if ($catename != '') {
$query = 'UPDATE pro_cates SET
catename = "' . mysql_real_escape_string($catename, $db) . '",
fat_id = ' . $fat_id . '
WHERE id = ' . $cateid ;
mysql_query("set names 'utf8'");
mysql_query($query, $db) or die(mysql_error($db));
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo "<script>alert('编辑分类成功!');location.href='manage.php';</script>";
}
else {
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo "<script>alert('分类名称不能为空!');location.href='manage.php';</script>";
}
}
else {//如果是中英双语版,同时写入分类英文名称
$catename = (isset($_POST['catename'])) ? trim($_POST['catename']) : '';
$catename_en = (isset($_POST['catename_en'])) ? trim($_POST['catename_en']) : '';
$fat_id = (isset($_POST['cate_fid'])) ? (int)$_POST['cate_fid'] : 0;
$cateid = (isset($_POST['cateid'])) ? (int)$_POST['cateid'] : 0;
if ($catename != '') {
$query = 'UPDATE pro_cates SET
catename = "' . mysql_real_escape_string($catename, $db) . '",
catename_en = "' . mysql_real_escape_string($catename_en, $db) . '",
fat_id = ' . $fat_id . '
WHERE id = ' . $cateid ;
mysql_query("set names 'utf8'");
mysql_query($query, $db) or die(mysql_error($db));
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo "<script>alert('编辑分类成功!');location.href='manage.php';</script>";
}
else {
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo "<script>alert('分类名称不能为空!');location.href='manage.php';</script>";
}
}
}
}
//删除分类
if (isset($_GET['action']) && ($_GET['action'] == 'del')) {
//定义递归方法删除分类函数
function del_all_cates($cateid) {
global $db; //将$db定义为全组变量才能在函数中引用
//删除当前分类
$query = 'DELETE FROM pro_cates WHERE id = ' . $cateid;
mysql_query($query, $db) or die(mysql_error($db));
//得到当前分类的所有子分类
$query = 'SELECT id FROM pro_cates WHERE fat_id = ' . $cateid;
$result = mysql_query($query, $db) or die(mysql_error($db));
if (mysql_num_rows($result)) { //如果当前分类有子分类
//将所有子分类id写入数组
$child_cates = array();
while ($row = mysql_fetch_array($result)) {
$child_cates[] = $row['id'];
}
foreach ($child_cates as $child_id) {
del_all_cates($child_id); //将每个子分类的id作为参数再次调用递归函数
}
}
mysql_free_result($result);
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo "<script>alert('删除分类成功!');location.href='manage.php';</script>";
}
//执行递归删除分类函数
del_all_cates($_GET['cateid']);
}
?>
<!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>
<script language="javascript">
function checkdel()
{if (confirm("确实要删除吗?"))
{return (true);}
else
{return (false);}
}
</script>
</head>
<body>
<?php
//显示分类
$query = 'SELECT id, fat_id, catename, catename_en FROM pro_cates ORDER BY id ASC';
mysql_query("set names 'utf8'");
$result = mysql_query($query, $db) or die(mysql_error($db));
if (mysql_num_rows($result)) {
$arr = array();
while ($row = mysql_fetch_assoc($result)) {
$arr[] = array($row['id'],$row['fat_id'],$row['catename'],$row['catename_en']); //每一行保存一个分类的id,父id和名称
}
//使用递归方法输出所有分类的函数
function show_cates($father_id = 0, $isen) {
global $arr; //声明$arr为全局变量才可在函数里引用
echo '<ul>';
for($i=0;$i<count($arr);$i++) { //对每个分类进行循环
if($arr[$i][1] == $father_id) { //$arr[$i][1]表示第$i+1个分类的父id的值,默认值为0就是把父id为0的一级分类先输出
if ($isen == 0) { //判断是否为中英双语版 0为否 1为是
echo '<li>' . $arr[$i][2]. '<a href="manage.php?action=edit&catename='. $arr[$i][2] .'&cateid='. $arr[$i][0] .'">编辑</a><a href="manage.php?action=del&cateid='. $arr[$i][0] .'" onclick="return checkdel()">删除</a></li>'; //$arr[$i][2]表示第$i+1个分类的name的值
}
else {
echo '<li>' . $arr[$i][2]. '(' . $arr[$i][3] . ')<a href="manage.php?action=edit&catename='. $arr[$i][2] .'&catename_en='. $arr[$i][3] .'&cateid='. $arr[$i][0] .'">编辑</a><a href="manage.php?action=del&cateid='. $arr[$i][0] .'" onclick="return checkdel()">删除</a></li>'; //$arr[$i][2]表示第$i+1个分类的name的值
}
show_cates($arr[$i][0], $isen); //$arr[$i][0]表示第$i+1个分类的id值,进行递归,也就是 //把自己的id作为父id参数,把自己的子类再循环输出
}
}
echo '</ul>';
}
- 1
- 2
前往页