【预备知识】

一、PHP访问MySQL数据库 

1、连接到MySQL数据库

 $conn=mysql_connect("localhost","root","") or die ("数据库服务器连接失败");

2、选择数据库

mysql_select_db("db_shop",$conn) or die("数据库访问错误"); 

3、执行SQL查询语句

mysql_query("set names gb2312");    //设置客户端字符集为gb2312

$SQL="select * from tb_type";

$result=mysql_query($SQL);       //SQL语句发送到数据库执行并返回结果资源

4、逐行获取数据

while($row=mysql_fetch_array($result))    //逐行获取类别表数据

  {

echo $row['typeid'];     //输出类别号

echo $row['typename'];    //输出类别名称

echo "";

  }

5、统计查询结果的记录集数

echo $num=mysql_num_rows($result);    //统计类别的数量

【例1】查询商品类别

  $conn=mysql_connect("localhost","root","") or die ("数据库服务器连接失败");

  mysql_select_db("db_shopping",$conn) or die("数据库访问错误"); 

  mysql_query("set names gb2312");    //设置客户端字符集为gb2312

  $SQL="select * from tb_type";

  $result=mysql_query($SQL);      //SQL语句发送到数据库执行并返回结果资源

  echo $num=mysql_num_rows($result);    //统计类别的数量

  echo "";

  while($row=mysql_fetch_array($result))    //逐行获取类别表数据

  {

echo $row['typeid'];     //输出类别号

echo $row['typename'];    //输出类别名称

echo "";

}

mysql_free_result($result);

mysql_close($conn)

?>

 

【例2】删除某个商品类别

  $conn=mysql_connect("localhost","root","") or die ("数据库服务器连接失败");

  mysql_select_db("db_shop",$conn) or die("数据库访问错误"); 

  mysql_query("set names gb2312");    //设置客户端字符集为gb2312

  $SQL="delete from tb_type where id=3 ";

mysql_query($sql,$conn) or die(mysql_error());

if(mysql_affected_rows($conn)>0){

echo "删除成功";

}else{

echo "无符合条件记录";

}

mysql_close($conn);

?>


二、MVC模式

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面 显示分离的方法组织代码

Model(模型)表示应用程序核心(比如数据库记录列表)。

View(视图)显示数据(数据库记录)。

Controller(控制器)处理输入(写入数据库记录)。

三、图

后台用户管理(管理员登录后管理会员)_第1张图片

【任务实施】

一、ZendStdio安装及创建项目

二、Apache建立虚拟目录

三、SQLHelper.class.php封装数据库相关操作

class SQLHelper{
    private $conn;
    private $host="localhost";
    private $user="root";
    private $pwd="";
    private $db="db_shopping";                                                                                                                                                                                                                                                                                                                     
    public function __construct(){

        $this->conn=mysql_connect($this->host,$this->user,$this->pwd) or die(mysql_connect_error);
        mysql_select_db($this->db);
        
    }
    public function execute_dql($sql){
        
        $res=mysql_query($sql) or die(mysql_error());
        return $res;
        
    }
    public function execute_dql2($sql){
        //查询,返回数组值
        $arr=array();
        $result=mysql_query($sql,$this->conn) or die(mysql_error());
        while($row=mysql_fetch_assoc($result)){
            $arr[]=$row;
        }
        mysql_free_result($result);
        return $arr;
    
    }
   
    public function executed_dml($sql){
        $b=mysql_query($sql,$this->conn) or die(mysql_error());
        if(!$b){
            return 0;   //不可操作
        }else{
            if(mysql_affected_rows($this->conn)>0){
                return 1;  //操作 成功
            }else{
                return 2;   //可以操作,但无符合条件记录
            }
        }
    }
    public function  close_connect(){
        if(!empty($this->conn)){
            mysql_close($this->conn);
        }
    }
}

?>

四、管理员登录与注销实现

1、Admin.class.php

class Admin {
    private $id;
    private $name;
    private $password;
    public function getId() {
        return $this->id;
    }
    public function getName() {
        return $this->name;
    }
    public function getPassword() {
        return $this->password;
    }

    public function setId($id) {
        $this->id = $id;
    }
    public function setName($name) {
        $this->name = $name;
    }
    public function setPassword($password) {
        $this->password = $password;
    }
}

?>

2、AdminService.class.php实现管理员身份验证

    require_once 'SQLHelper.class.php';
    require_once 'Admin.class.php';
    class AdminService {
        public function checkAdmin($id,$password){
            $sql="select password,name from admin where id=$id";
            $name="";
            $sqlHelper=new SQLHelper();
            $result=$sqlHelper->execute_dql($sql);
            if($row=mysql_fetch_assoc($result)){
                if($password==$row['password']){
                  
                $name=$row['name'];    
                }
            }
            mysql_free_result($result);
            $sqlHelper->close_connect();
            return $name;
        }
    }

3、loginProcess获取用户信息,通过service访问数据库,验证是否形式合法新用户,返回用户

require_once 'SQLHelper.class.php';
require_once 'AdminService.class.php';
$action=$_GET['action'];
if("login"==$action){
    $id=$_POST['id'];
    $password=$_POST['password'];
    $password=md5($password);
    $service=new AdminService();
    $name=$service->checkAdmin($id, $password);
    echo $name;
    
    if($name!=""){
        header("Location:empManage.php?name=$name");
        session_start();//启用session回话
        $_SESSION['name']=$name;
    
        header("Location:Manage.php");
        exit();
    }
    else {
        header("Location:login.php?errno=1");
        exit();
    }
}

四、实现后台管理页

1、Manager.php

header("content-type:text/html;charset=utf-8");
session_start();
if(isset($_SESSION['name'])){
    echo "欢迎".$_SESSION['name']."登陆";
    echo "
重新登陆";
    
    echo "

用户管理

";
    echo "
显示用户列表
";
    echo "添加用户
";
    echo "注销
";
}else{
    header("Location:login.php");
}
?>

2、loginProcess注销管理员返回登录界面

if ("exit"==$action){
    session_start();
    $_SESSION=array();
    if(isset($_COOKIE[session_name()])){
        setcookie(session_name(),'',time()-3600);
    }
    session_destroy();
    header("Location:login.php");
    exit();
}

五、实现会员列表

1、自行编写User.class.php

class User {
    private $id;
    private $name;
    private $password;
    private $email;
    private $telephone;

}

2、UserService.class.php

     require_once 'SQLHelper.class.php';
     require_once 'User.class.php';
 
    class UserService{
        public function getById($id){
            $sql="select * from users where id=$id";
            $sqlHelper=new SQLHelper();
            $arr=$sqlHelper->execute_dql2($sql);
            $user=new User();
            $user->setId($arr[0]['id']);
            $user->setName($arr[0]['name']);
            $user->setPassword($arr[0]['password']);
            $user->setEmail($arr[0]['email']);
            $user->setTelephone($arr[0]['telephone']);
            return $user;
            
            
        }
        public function deleteUser($id)
        {
            $sql="delete from users where id=$id";
            $sqlHelper=new SQLHelper();
            $b=$sqlHelper->executed_dml($sql);
            return $b;
            
        
        }
        public function addUser($name,$password,$email,$telephone){
            
            $sql="insert into users(name,password,email,telephone)values('$name','$password','$email','$telephone')";
            $sqlHelper=new SQLHelper();
            $b=$sqlHelper->executed_dml($sql);
            
            return $b;
        }
        public function updateUser($id,$name,$password,$email,$telephone){
            $sql="update users set name='$name',password='$password',email='$email',telephone='$telephone' where id=$id";
            $sqlHelper=new SQLHelper();
            $b=$sqlHelper->executed_dml($sql);
            return $b;
            
        }
     }


3、列表显示会员信息

userList.php

header("content-type:text/html;charset=utf-8");
require_once 'SQLHelper.class.php';
require_once 'UserService.class.php';

    //方式1
    /* $sql1="select id,name from users";
    // $result=$sqlHelper->execute_dql($sql);
    // while($row=mysql_fetch_assoc($result)){
    //     echo"{$row['id']}{$row['name']}删除修改";
    // }
    // mysql_free_result($result);
    // $sqlHelper->close_connect();
    
    //MVC方式

    $sql1="select id,name from users ";
      $sqlHelper=new SQLHelper();
    $result=$sqlHelper->excute_dql2($sql1);//二维数组
    $sqlHelper->close_connect();
      echo"会员信息表
";
    echo"

        

        

";   

foreach ($result as $row){
        
        echo"

";
        //print_r($row['id']);
        
    }
    echo"
idname删除修改
{$row['id']}{$row['name']}删除修改
";
     
?>
六、删除会员

1、userList.php修改部分

foreach ($result as $row){
        
        echo"{$row['id']} {$row['name']}删除修改< /td>";
        //print_r($row['id']);
        
    }

2、userProcess.php实现删除部分内容

if("delete"==$_GET['action']){
        $id=$_GET['id'];
        $userService=new userService();
        $b=$userService->deleteUser($id);
        if($b==1)
        {
            header("Location:ok.php");
        }else{
            header("Location:error.php");
        }

七、修改会员

1、userList.php修改部分

foreach ($result as $row){
        
        echo"{$row['id']} {$row['name']}删除修改< /td>";
        //print_r($row['id']);
        
    }

2、updateUserUI界面部分

require_once 'User.class.php';
require_once 'UserService.class.php';
header("Content-type:text/html;charset=utf-8");
if(!empty($_GET['id'])){
    $id=$_GET['id'];
    $UserService=new UserService();
    $User=$UserService->getById($id);

}

?>

修改用户信息





    
    


        
        











    
    


用户id
用户名
密码
邮箱
电话



3、userProcess实现修改部分

if("update"==$_POST['action']){
        $id=$_POST['id'];
        $name=$_POST['name'];
        $password=$_POST['password'];
        $email=$_POST['email'];
        $telephone=$_POST['telephone'];
        //echo $email;
        $userService=new userService();
        $b=$userService->updateUser($id, $name, $password, $email, $telephone);
        if($b==1)
        {
            header("Location:ok.php");
        }else{
            header("Location:error.php");
        }
    }

八、添加用户信息部分(自主完成)