1. 创建categories管理页面
主要包含以下几个页面:
A. index.php, 准备各种变量数据.供展示页面使用.
B. categories.html.php, 显示categories.
C. form.html.php, 用于编缉或添加作者的页面.
页面郊果:
2. categories页面的主要流程
2.1 是否已登录
if (!user_is_login()){include '../login.html.php';exit();}
2.2 是否有权限
if (!user_has_role('Content Editor')){$error = 'only Content Editor may access this page...';include '../access.denied.html.php';exit();}
2.3 添加分类目录
// add categoriesif (isset($_GET['add'])) {include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/db.inc.php';try { $pageTitle = 'Add category';$action = 'addCategory';$categoryText = '';$id = '';$button = 'Add category';include 'form.html.php';exit();} catch (PDOException $e) {$error = 'Error getting list of jokes to edit...'.$e->getMessage();include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/error.html.php';exit();}}// add categoriesif (isset($_GET['addCategory']) && $_POST['categoryText'] != '') {include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/db.inc.php';try {$sql = 'INSERT INTO category(name) VALUES(:categoryText);';$s = $pdo->prepare($sql);$s->bindValue(':categoryText', $_POST['categoryText']);$s->execute();} catch (PDOException $e) {$error = 'Error adding category...'.$e->getMessage();include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/error.html.php';exit();}header('Location: .');exit();}
2.4 编缉分类目录
// edit categoriesif (isset($_POST['action']) and $_POST['action'] == 'Edit') {include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/db.inc.php';try {$sql = 'SELECT name FROM category WHERE id = :id';$s = $pdo->prepare($sql);$s->bindValue(':id', $_POST['id']);$s->execute();$row = $s->fetch();$pageTitle = 'Edit category';$action = 'editCategory'; $categoryText = $row['name'];$id = $_POST['id'];$button = 'Update category';include 'form.html.php';exit();} catch (PDOException $e) {$error = 'Error getting list of category to edit...'.$e->getMessage();include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/error.html.php';exit();}}// edit categoriesif (isset($_GET['editCategory']) && $_POST['categoryText'] != '') {include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/db.inc.php';try {$sql = 'UPDATE category SETname = :nameWHERE id = :id;';$s = $pdo->prepare($sql);$s->bindValue(':name', $_POST['categoryText']);$s->bindValue(':id', $_POST['id']);$s->execute();} catch (PDOException $e) {$error = 'Error updating categories...'.$e->getMessage();include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/error.html.php';exit();}header('Location: .');exit();}
if (isset($_POST['action']) and $_POST['action'] == 'Delete') { include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/db.inc.php';// delete jokecategory entriestry {$sql = 'DELETE FROM jokecategory WHERE categoryid = :id';$s = $pdo->prepare($sql);$s->bindValue(':id', $_POST['id']);$s->execute(); } catch (PDOException $e) {$error = 'Error deleting jokecategory...'.$e->getMessage();include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/error.html.php';exit();}// delete category entriestry {$sql = 'DELETE FROM category WHERE id = :id';$s = $pdo->prepare($sql);$s->bindValue(':id', $_POST['id']);$s->execute();} catch (PDOException $e) {$error = 'Error deleting category...'.$e->getMessage();include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/error.html.php';exit();}header('Location: .');exit();}
2.6 显示分类目录
// show all categories in database...try {include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/db.inc.php';$querySql = "SELECT id, name FROM category;";$result = $pdo->query($querySql);foreach ($result as $row) {$categories[] = array('id'=>$row['id'], 'name'=>$row['name']); } //if (count($categories) > 0) {$sql = "SELECT COUNT(*) AS RCT FROM category;";$s = $pdo->prepare($sql);$s->execute();$row = $s->fetch();$rowCount = $row['RCT'];include 'categories.html.php';} } catch (PDOException $e) {$error = "query category failed...".$e->getMessage();include $_SERVER['DOCUMENT_ROOT'].'/PHP_MySQL_Web/includes/error.html.php';exit();}