第1关:PHP对MySQL的基本操作
<?php
/**
 * 初始化数据库连接
 */

require 'public_function.php';
//创建对象,连接数据库
/*****begin*********/
$link=new mysqli('127.0.0.1','root','123123');

/*****end*********/

//判断数据库连接是否成功,如果不成功则显示错误信息并终止脚本继续执行
if($link->connect_error){
    die('连接数据库失败!'.$link->connect_error);
}
//设置字符集,选择数据库
$link->query("drop database if exists 'educoder';");
$link->query("create database educoder;");
$link->query('set names utf8;');
$link->query('use educoder;');

//创建部门信息表
/*****begin*********/
$sql="create table emp_dept(
    d_id int unsigned primary key auto_increment,d_name varchar(20) not null) charset=utf8;";
$link->query($sql);
/*****end*********/
//向部门信息表中插入数据
/*****begin*********/
$sql="INSERT INTO emp_dept VALUES 
     (1, '开发部'), (2, '媒体部'), (3, '人事部'),(4, '后勤部'), 
     (5, '市场部'),  (6, '运维部'), (7, '销售部');";
$link->query($sql);
/*****end*********/

//修改用户表
/*****begin*********/
$sql="drop table if exists emp_info;";
$link->query($sql);
 $sql="create table emp_info (
    e_id int unsigned primary key auto_increment, 
    e_name varchar(20) not null, 
    d_id int unsigned not null, 
    date_of_birth timestamp not null, 
    date_of_entry timestamp not null
    )charset=utf8;";
$link->query($sql);

/*****end*********/

//向其中添加用户数据
/*****begin*********/
$sql="INSERT INTO emp_info VALUES
(1, '小红', 1, '2015-4-9 17:51:00', '2015-4-9 17:52:00'), 
(2, '李四', 5, '2008-4-3 13:33:00', '2013-10-24 17:53:00'), 
(3, '王五', 4, '2008-4-3 13:33:00', '2015-4-21 13:33:00'), 
(4, '赵六', 4, '2008-4-3 13:33:00', '2015-3-20 17:54:00'), 
(5, '小兰', 2, '1989-5-4 17:33:00', '2012-6-18 17:54:00'), 
(6, '小新', 5, '1993-9-18 17:36:00', '2015-2-28 17:36:00'), 
(7, '小白', 2, '1991-10-17 17:37:00', '2014-8-16 17:37:00'), 
(8, '小智', 7, '1987-6-20 17:37:00', '2015-1-10 17:38:00'), 
(9, '大头', 6, '1991-2-14 08:49:00', '2014-7-12 08:49:00'), 
(10, '小明', 3, '1991-2-14 08:49:00', '2015-3-4 09:10:00'), 
(11, '小刘', 1, '1992-3-18 14:52:00', '2014-7-21 09:00:00');";
$link->query($sql);

/*****end*********/
//左连接查询
//填充下面sql语句
$sql="select emp.e_id,emp.e_name,emp.date_of_birth,emp.date_of_entry,dept.d_name
      from emp_info as emp  
      left join emp_dept as dept
      on emp.d_id = dept.d_id;";

$result=$link->query($sql);
$db=new Init();
$emp_info =$db->fetchAll($sql);
//设置常量,用以判断视图页面是否由此页面加载
define('APP', 'educoder');
//加载视图页面,显示数据
require 'list_html.php';

第2关:PHP实现下拉菜单显示数据 上
<?php
/**
 * 初始化数据库连接
 */

Class Init
{
    private $link;
    private static $host="127.0.0.1";
    private static $root="root";
    private static $password="123123";

function __construct()
    {
        $this->link=new mysqli(self::$host,self::$root,self::$password);

//判断数据库连接是否成功,如果不成功则显示错误信息并终止脚本继续执行
        if($this->link->connect_error){
            die('连接数据库失败!');
        }
        //设置字符集,选择数据库
        $this->link->query('set names utf8;');
        $this->link->query('use educoder;');
    }

/**
     * 执行SQL的方法
     * @param string $sql 待执行的SQL
     * @return mixed 失败返回false,成功,如果是查询语句返回结果集,如果非查询类返回true
     */

public function query($sql) {
       /***********Begin******/
      if ($result =$this->link->query($sql)) {
            return $result;
        }else{
            echo 'SQL执行失败:<br>';
            echo '错误的SQL为:',$sql,'<br>';
            echo '错误的代码为:',$this->link->connect_errno,'<br>';
            echo '错误的信息为:',$this->link->connect_error,'<br>';
            return false;
        }

/*********end*******/
    }

/**
     * 处理结果集中有多条数据的方法
     * @param string $sql 待执行的SQL
     * @return array 返回遍历结果集后的二维数组
     */
    public function fetchAll($sql) {

if ($result =$this->link->query($sql)) {
            //执行成功
            //遍历结果集
            /***********Begin******/
         $rows=array();
        while($row=$result->fetch_assoc()){
            $rows[]=$row;
        }
        
        
        /*********end*******/
            //释放结果集资源
            $result->free();
            return $rows;

} else {
            //执行失败
            return false;
        }
    }

/**
     * 处理结果集中只有一条数据的方法
     * @param string $sql 待执行的SQL语句
     * @return array 返回结果集处理后的一维数组
     */
    public function fetchRow($sql) {
        //执行query()函数
        if ($result = $this->link->query($sql)) {
            //从结果集取得一次数据即可
           /***********Begin******/
         $row=$result->fetch_assoc();
        return $row;
        
        
        /*********end*******/
            
        } else {
            return false;
        }

}

/**
     * 对数据进行安全处理
     * @param string $data 待转义字符串
     * @return string 转义后的字符串
     */
    function safeHandle($data){
        //转义字符串中的HTML标签
        $data = htmlspecialchars($data);
        //转义字符串中的特殊字符
        $data = mysqli_real_escape_string($this->link,$data);
        return $data;
    }

}

//初始化数据库
$db=new Init();

//判断是否有表单提交
if(!empty($_POST)){

//声明变量$value,用来保存字段信息
    $fields = array('e_name','e_dept','date_of_birth','date_of_entry');

//声明变量$value,用来保存值信息
    $value = array();

//遍历$allow_field,获取输入员工数据的键和值
    foreach($fields as $k => $v){

$data = isset($_POST[$v]) ? $_POST[$v] : '';

if($data=='') die($v.'字段不能为空');

$data =$db-> safeHandle($data);

//把字段使用反引号包裹,赋值给$fields数组
        $fields[$k] = "`$v`";

//把值使用单引号包裹,赋值给$values数组
        $values[] = "'$data'";
    }

//将$fields数组以逗号连接,赋值给$fields,组成insert语句中的字段部分
    $fields = implode(',', $fields);

//将$values数组以逗号连接,赋值给$values,组成insert语句中的值部分
    $values = implode(',', $values);

//最后把$fields和$values拼接到insert语句中,注意要指定表名
    $sql = "insert into `emp_info` ($fields) values ($values)";

//执行SQL
    if($res = $db->query($sql)){
        //成功时返回到 showList.php
        header('Location: ./showList.php');
        //停止脚本
        die;
    }else{
        //执行失败
        die('员工添加失败!');
    }
}
$sql = 'select * from emp_dept';
//调用fetchAll()函数,执行SQL并进行数据处理,把处理后的部门数据赋值给$emp_dept
$emp_dept = $db->fetchAll($sql);

//没有表单提交时,显示员工添加页面
define('APP', 'educoder');
require 'add_html.php';
第3关:PHP实现下拉菜单显示数据 下
<?php
require "empUpdate.php";
if(!defined('APP')) die('error!');
?>
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>员工信息编辑</title>
    <link rel="stylesheet" href="./js/jquery.datetimepicker.css"/ >
    <script src="./js/jquery.js"></script>
    <script src="./js/jquery.datetimepicker.js"></script>
    <script>
        $(function(){
            $('#date_of_birth').datetimepicker({lang:'ch'});
            $('#date_of_entry').datetimepicker({lang:'ch'});
        });
    </script>
    <style>
        body{background-color:#eee;margin:0;padding:0;}
        .box{width:400px;margin:15px auto;padding:20px;border:1px solid #ccc;background-color:#fff;}
        .box h1{font-size:20px;text-align:center;}
        .profile-table{margin:0 auto;}
        .profile-table th{font-weight:normal;text-align:right;}
        .profile-table input[type="text"]{width:180px;border:1px solid #ccc;height:22px;padding-left:4px;}
        .profile-table .button{background-color:#0099ff;border:1px solid #0099ff;color:#fff;width:80px;height:25px;margin:0 5px;cursor:pointer;}
        .profile-table .td-btn{text-align:center;padding-top:10px;}
        .profile-table th,.profile-table td{padding-bottom:10px;}
        .profile-table td{font-size:14px;}
        .profile-table .txttop{vertical-align:top;}
        .profile-table select{border:1px solid #ccc;min-width:80px;height:25px;}
        .profile-table .description{font-size:13px;width:250px;height:60px;border:1px solid #ccc;}
    </style>
</head>
<body>
<div class="box">
    <h1>修改员工信息</h1>
    <form method="post">
        <table class="profile-table">
            <tr><th>姓名:</th><td><input type="text" name="e_name" value="<?php echo $emp_info['e_name']; ?>"/></td></tr>
            <tr><th>所属部门:</th>
                <td>
                    <!—下拉菜单开始-->
                    <!—在输出每个部门信息时,判断是否为该员工当前所属部门,如果是设置为默认项selected='selected'-->
                     <!somecodes here-->
<!somecodes here-->
                    <select name="d_id">
                    <?php foreach ($emp_dept as $row){?>
                    <option value="<?php echo $row['d_id'];?>"><?php echo $row['d_name'];?></option>
                    <?php }?>
                    </select>
                    <!—下拉菜单结束-->
                </td></tr>
            <tr><th>出生年月:</th><td><input id="date_of_birth" name="date_of_birth" type="text" value="<?php echo $emp_info['date_of_birth']; ?>"></td></tr>
            <tr><th>入职日期:</th><td><input id="date_of_entry" name="date_of_entry" type="text" value="<?php echo $emp_info['date_of_entry']; ?>"></td></tr>
            <tr><td colspan="2" class="td-btn">
                    <input type="submit" value="保存资料" class="button" />
                    <input type="reset" value="重新填写" class="button" />
                </td></tr>
        </table>
    </form>
</div>
</body>
</html>

头歌php mysql操作答案相关推荐

  1. 头歌 数据结构与算法答案 善用目录

    头歌 数据结构与算法答案 其他作业链接 非盈利文章,谢谢大家的分享和支持,如果大家有想要投稿的答案,也可以点击下面链接联系作者. 点击联系作者 作者博客 选择题加粗为正确答案 头歌java实训答案集 ...

  2. 头歌实践教学平台答案(Java实训作业答案)

    搜集整理了一份最新最全的头歌(EduCoder)Java实训作业答案,分享给大家.(EduCoder)是信息技术类实践教学平台.(EduCoder)涵盖了计算机.大数据.云计算.人工智能.软件工程.物 ...

  3. 头歌 Java实训答案 全ac代码 请善用目录功能

    Java初体验 第一关 public class HelloWorld{ /********* Begin *********/ public static void main(String[] ar ...

  4. 头歌 分布式文件系统HDFS 答案

    第1关:HDFS的基本操作 在右侧命令行中启动Hadoop,进行如下操作. 在HDFS中创建/usr/output/文件夹: 在本地创建hello.txt文件并添加内容:"HDFS的块比磁盘 ...

  5. 头歌Python实训答案——函数结构

    第1关:函数的参数 - 搭建函数房子的砖 编程要求 本关的编程任务是补全src/Step1/plus.py文件的代码,实现相应的功能.具体要求如下: 定义并调用一个函数,功能是对输入的列表中的数值元素 ...

  6. 【educoder】头歌 数据结构与算法 答案

  7. 头歌Java实训答案——Java初体验

    第1关:Java第一课 public class HelloWorld{/********* Begin *********/public static void main(String[] args ...

  8. 头歌MySQL数据库实训答案 有目录

    头歌MySQL数据库答案 特别感谢黄副班.小青提供代码,有问题联系公众号[学思则安]留言更正 其他作业链接 数据库1-MySQL数据定义与操作实战 MySQL数据库 - 初识MySQL MySQL数据 ...

  9. 头歌 软件测试项目综合实训 答案 有目录善用目录 持续更新

    头歌 软件测试项目综合实训 其他作业链接 非盈利文章,谢谢大家的分享和支持,如果大家有想要投稿的答案,也可以点击下面链接联系作者. 点击联系作者 作者博客 选择题加粗为正确答案 头歌java实训答案集 ...

最新文章

  1. 高斯混合模型聚类实战(Gaussian Mixtures)
  2. subList用法详解
  3. SAP Cloud for Customer用ABSL消费Restful Mashup API
  4. 如何编写自己的Java / Scala调试器
  5. composer 设置版本号_Composer依赖管理 – PHP的利器
  6. Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具
  7. python 重复执行任务_使用Python自动执行数字艺术家的重复任务
  8. 【英语学习】【English L06】U04 Adventure L3 The city playground and some famous museums
  9. vim配置之taglist插件安装
  10. SAP License:ERP实施关键问题
  11. 曲线绕y轴旋转一周所得旋转体体积_求下列曲线绕指定轴旋转一周所围成的旋转体的体积...
  12. 毕业论文word格式
  13. 一个Android开发者开博一周年的成长日记——送给不知如何下手的【初级开发者】和【在校生】
  14. Redis学习之publish命令
  15. zoc 下载服务器上数据出现的问题
  16. Tensorflow使用object_detetcion安装教程
  17. npm install 报错:no such file or directory, scandir '..\node-sass\vendor'
  18. 基于php的网上书店系统,基于PHP的网上书店的设计
  19. 【笔记】WGAN GP :WGAN自己的李普西斯条件是gradient clipping(大部分weight是正负0.01),在此基础上增加新的motivation让WGAN GP实现李普西斯条件
  20. 传闻将与马云合作,涨了7倍的正大企业国际,还能跟风吗?

热门文章

  1. 欧阳晔李佳朱军入选IEEE Fellow,新晋名单华人占比1/4!还有一位小米大牛
  2. Ubuntu12.04下载android-goldfish-2.6.29
  3. 秋招_多益网络_一面/HR面
  4. Java基础核心之三大特性
  5. 电脑桌面不定时黑屏,电脑桌面壁纸不定时黑屏,电脑桌面黑屏怎么办,
  6. github设置仓库可见性 私人仓库设置他人协作/可见
  7. 数据仓库电商业务简介完整使用 (第二章)
  8. Mysql索引,SQL优化
  9. Dcoker学习——基于centos安装docker
  10. 菜鸟学习OGRE和天龙八部之十八: 获得档案(Archive)文件列表