PHP和MySQL Web开发从新手到高手,第8天-创建categories管理页面

1. 创建categories管理页面

  主要包含以下几个页面:

  A. index.php, 准备各种变量数据.供展示页面使用.

  B. categories.html.php, 显示categories.

  C. form.html.php, 用于编缉或添加作者的页面.

页面郊果:

image

 

2. categories页面的主要流程

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();
  }
posted @ 2015-11-03 20:07  leungcnblogs  阅读(398)  评论(0编辑  收藏  举报