1.分析
index.php是呈现列表,通过点击列表页上的添加和删除按钮,对列表页上面的进行操作
index.php
TODO:要将数据库里面的内容呈现到页面中
(1)连接数据库
(2)查询数据
(3)混编
//连接数据库
$connection=mysqli_connect('localhost','root','123','test');
if(!$connection){
exit('
数据库连接失败');
}
//建立查询
$query = mysqli_query($connection,'select * from users;');
if(!$query){
exit('数据库查询失败');
}
//转为数组
/*while($item = mysqli_fetch_assoc($query)){
var_dump($item);
}*/
?>
XXX管理系统用户管理 添加
#头像姓名性别年龄操作
<?php echo $item['id']; ?>add.php
DOTO:在数据库里面添加数据
(1)表单验证 (2)持久化( 3)响应
需要注意的几个问题:
(1)在单选中,value=-1默认是没有选中
function add(){
//目标:表单验证,持久化,响应
//表单验证
//验证姓名
if(empty($_POST['name'])){
$GLOBALS['error_message'] = '请输入姓名';
return ;
}
if(!(isset($_POST['gender'])&&$_POST['gender']!=='-1')){
$GLOBALS['error_message'] = '请选择性别';
return;
}
if(empty($_POST['birthday'])){
$GLOBALS['error_message'] = '请选择生日';
return;
}
$name=$_POST['name'];
$gender=$_POST['gender'];
$birthday=$_POST['birthday'];
//头像验证
if (empty($_FILES['src'])) {
$GLOBALS['error_message'] = '请上传头像';
return;
}
$ext = pathinfo($_FILES['src']['name'], PATHINFO_EXTENSION);
// => jpg
$target = '../uploads/avatar-' . uniqid() . '.' . $ext;
if (!move_uploaded_file($_FILES['src']['tmp_name'], $target)) {
$GLOBALS['error_message'] = '上传头像失败';
return;
}
$src = substr($target, 2);
//持久化,将数据保存到数据库中
//连接数据库
$connection=mysqli_connect('localhost','root','123','test');
if(!$connection){
$GLOBALS['error_message'] = '数据库连接失败';
}
$query = mysqli_query($connection, "insert into users values (null, '{$name}', {$gender}, '{$birthday}', '{$src}');");
//建立查询
if(!$query){
$GLOBALS['error_message'] = '数据库插入失败';
}
//响应
header('Location: index.php');
}
if($_SERVER['REQUEST_METHOD']=='POST'){
add();
}
?>
XXX管理系统添加用户
头像
姓名
性别
请选择性别
男
女
生日
保存
edit.php
注意的问题:
(1)这里需要加上一个空格,属性和属性之间必须要有空格,
(2)如果gender=" " 这是不选中的情况,但是null==0,返回的是TRUE,
(3)
在html中,函数里面不能使用函数外面的变量,如果要使用应该都声明为全局变量
// 接收要修改的数据 ID
if (empty($_GET['id'])) {
exit('
必须传入指定参数
');}
$id = $_GET['id'];
// 1. 建立连接
$conn = mysqli_connect('localhost', 'root', '123', 'test');
if (!$conn) {
exit('
连接数据库失败
');}
// 2. 开始查询
// 因为 ID 是唯一的 那么找到第一个满足条件的就不用再继续了 limit 1
$query = mysqli_query($conn, "select * from users where id = {$id} limit 1;");
if (!$query) {
exit('
查询数据失败
');}
// 已经查询到的当前数据
$user = mysqli_fetch_assoc($query);
if (!$user) {
exit('
找不到你要编辑的数据
');}
function edit () {
global $user;
global $conn,$query;
// 验证非空
if (empty($_POST['name'])) {
$GLOBALS['error_message'] = '请输入姓名';
return;
}
if (!(isset($_POST['gender']) && $_POST['gender'] !== '-1')) {
$GLOBALS['error_message'] = '请选择性别';
return;
}
if (empty($_POST['birthday'])) {
$GLOBALS['error_message'] = '请输入日期';
return;
}
// 取值
$user['name'] = $_POST['name'];
$user['gender'] = $_POST['gender'];
$user['birthday'] = $_POST['birthday'];
// 有上传就修改
if (isset($_FILES['src']) && $_FILES['src']['error'] === UPLOAD_ERR_OK) {
// 用户上传了新头像 -> 用户希望修改头像
$ext = pathinfo($_FILES['src']['name'], PATHINFO_EXTENSION);
$target = '../uploads/avatar-' . uniqid() . '.' . $ext;
if (!move_uploaded_file($_FILES['src']['tmp_name'], $target)) {
$GLOBALS['error_message'] = '上传头像失败';
return;
}
$user['src'] = substr($target, 2);
}
// $user => 修改过后的信息
// TODO: 将数据更新回数据库
$newdata=mysqli_query($conn,"update users set name='{$user['name']}', gender={$user['gender']},birthday='{$user['birthday']}',src='{$user['src']}' where id={$user['id']} limit 1;");
if(!$newdata){
$GLOBALS['error-message'] = '更新数据失败';
}
header('Location: index.php');
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
edit();
}
?>
XXX管理系统编辑“<?php echo $user['name']; ?>”
头像
姓名
性别
请选择性别
>男
>女
生日
保存
delete.php
$id = $_GET['id'];
//建立数据库连接
$conncetion=mysqli_connect('localhost','root','123','test');
if(!$conncetion){
exit('
数据库连接失败
');}
//查询
$query=mysqli_query($conncetion,'delete from users where id='.$id.';');
if(!$query){
exit('
数据库查询失败
');}
header('Location: index.php');