標籤:
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 categories if (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 categories if (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 categories if (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 categories if (isset($_GET[‘editCategory‘]) && $_POST[‘categoryText‘] != ‘‘) { include $_SERVER[‘DOCUMENT_ROOT‘].‘/PHP_MySQL_Web/includes/db.inc.php‘; try { $sql = ‘UPDATE category SET name = :name WHERE 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(); }2.5 刪除分類目錄
if (isset($_POST[‘action‘]) and $_POST[‘action‘] == ‘Delete‘) { include $_SERVER[‘DOCUMENT_ROOT‘].‘/PHP_MySQL_Web/includes/db.inc.php‘; // delete jokecategory entries try { $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 entries try { $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(); }
PHP和MySQL Web開發從新手到高手,第8天-建立categories管理頁面