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

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();
  }
时间: 2024-11-10 21:49:41

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

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

1. 创建joke管理页面   主要包含以下几个页面:   A. index.php, 准备各种变量数据.供展示页面使用.   B. jokes.html.php, 显示joke.   C. form.html.php, 用于编缉或添加笑话的页面.   D. search.form.html.php, 用于搜索笑话的面面. 页面郊果:   2. index.php的主要流程 2.1 是否已登录 if (!user_is_login()){ include '../login.html.php';

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

1. 创建author管理页面   主要包含以下几个页面:   A. index.php, 准备各种变量数据.供展示页面使用.   B. authors.html.php, 显示author.   C. form.html.php, 用于编缉或添加作者的页面. 页面郊果:   2. author页面的主要流程 2.1 是否已登录 if (!user_is_login()){ include '../login.html.php'; exit(); } 2.2 是否有权限 if (!user_ha

PHP和MySQL Web开发从新手到高手,第1天-搭建PHP开发环境

准备式作 1. 搭建开发环境     具体步骤,请参考: Windows下搭建PHP开发环境 2. 参考书籍     3. 开发环境     如果上面两步你已经搞定了, 现在可以安装PHP开发环境了.     我用的是: [Windows][编程开发][zend studio][10.6.2][英文][msi]   好了, 环境搭建完成之后,就可以开始写代码了.

PHP和MySQL Web开发从新手到高手,第4天-搭建基本框架

1. 添加首页index.php,最终郊果 如图: 1.1 编辑首页内容   <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Joke Management System</title> </head> <body> <h1>Joke Management System</h1> <ul&g

PHP和MySQL Web开发从新手到高手,第9天-总结

1.  PHP中$_REQUEST,$_POST,$_GET的区另和联系_2015_1025 2.  MySQL_PHP学习笔记_2015_0907_PHP使用小总结 2.1. 使PDO对象在没能成功执行任务的任意时刻都能抛出一个PDOException 在建立一次成功的连接之后, PDO会切换到"故障沉默"模式. 当某处出错时, 这会使我们很难发现错误并成容地处理它. 可果我们想要使PDO对象在没能成功执行任务的任意时刻都能抛出一个PDOException, 可以通过调用PDO对象的

PHP和MySQL Web开发从新手到高手,第5天-添加辅助函数

1. 用户权限相关的函数.   这些函数在接下来的页面设计中会用到.   主要包括:   function user_is_login()   function database_contains_author($email, $password)   function get_md5_password($password)   function user_has_role($role) 1.1 user_is_login() function user_is_login(){ if (isse

PHP和MySQL Web开发从新手到高手,第3天-数据库设计

这些表在以后会用到. 1. 数据库设计   包含如下6个表:   2. 每个表的结构 2.1 表`author` CREATE TABLE `author` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `password` char(32) DEFAULT NULL, `email` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=

PHP和MySQL Web开发(第4版) by Luke Welling

Web开发是基于HTML的,但是HTML是静态的,于是我们还需要PHP这样动态的服务器端脚本语言,有了PHP还不够,我们还需要把数据存储在MySQL这样的RDBMS(关系数据库管理系统)上,PHP和MySQL都是很成熟的工具,具有高性能.低成本.易用性等优势,是Web开发的明智之选. ==== 目录 ==== 第一篇 使用PHP C01 PHP快速入门 C02 数据的存储与检索 C03 使用数组 C04 字符串操作与正则表达式 C05 代码重用与函数编写 C06 面向对象的PHP C07 错误和

【读书笔记】PHP和MySQL WEB开发 第四版

php的主要竞争对手是perl,microsoft asp.net, ruby(on rails或其他), javaserver pages,coldfusion php优点 高性能 速度快 具有 shared-nothing架构,可以有效并廉价地对大量服务器进行水平方向拓展 集成针对许多数据库的内置链接 提供许多完成web任务的内置函数 免费,类c语言,易学习 支持面向对象 良好的可移植性 开发方法灵活 开源,文档丰富 mysql优点 高性能 低成本 易学习 易配置 可移植 开源 技术支持好