zoukankan      html  css  js  c++  java
  • 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();
      }
  • 相关阅读:
    Docker----mysql数据持久化
    Docker-----容器数据卷
    Docker-----制造自己的镜像
    Docker----常用命令(镜像和容器的常用命令)
    Docker----阿里云镜像加速
    Docker概述
    com.aliyuncs.exceptions.ClientException: InvalidVersion : Specified parameter Version is not valid.
    夜神模拟器的使用踩坑--adb devices无法连接设备
    python利用smtplib模块发送邮件
    appium环境安装说明
  • 原文地址:https://www.cnblogs.com/BigBigLiang/p/4934243.html
Copyright © 2011-2022 走看看