批改状态:合格
老师批语:将知识点与实际项目结合起来是最好的学习方法
本实战的收获:
通过本PDO的实战手动创建了数据库及数据表;
在php中利用PDO创建与数据库的连接
将数据库中的表读取成php的数组
利用数组的遍历及条件判断对数据进行页面上的应用
熟悉了php语句的调式方法,利用echo或var_dump()输出帮助调试。
需注意文件的目录的设置
本实战目录结构

数据库结构



1、连接数据库
拼接数据库信息:数据库类型:host=主机名或IP地址;dbname=数据库名
新建数据库连接:new PDO(数据库信息,username='用户名',password='密码')
<?php
//<--连接数据库
$db =[
'type' => 'mysql',
'host' => 'html.io',
'dbname' => 'phpsql',
'username' => 'root',
'password' => 'root'
];
//数据库信息拼接
$dsn = $db['type']. ':host='.$db['host'].';dbname='.$db['dbname'];
//创建pdo对象
try{
$pdo = new PDO($dsn,$db['username'],$db['password']);
}catch (PDOException $e){
dir('Connection Failed: '.$e->getMessage());
};
//-->连接数据库完成2、用PDO预处理语句对象方法读取数据库表的数据
新建sql语句模板
创建PDOStatement预处理语句对象 $pdo->prepare($sql)
绑定sql模板语句中的点位符变量 $stmt->bindParam(`字段名`,变量,PDO::数据类型)
执行sql语句 $stmt->execute()
获取查询到的数据 $stmt ->fetch()或fetchall()前面是一维数组,后面是二维数组
将数据库中需要到表通过pdo的方法引入到php的对应数组变量中
<?php
require __DIR__.'/connect.php';
//<--读取网站system数据:title,description,keyword
//创建SQL预处理对象
$sql = 'SELECT * FROM `wz_system` WHERE `sys_id` =:sys_id ';
$stmt = $pdo -> prepare($sql);
$sys_id = 1;
//绑定占位变量
$stmt ->bindParam('sys_id',$sys_id,PDO::PARAM_INT);
//执行SQL语句,$stmt->execute()对SQL语句进行执行,执行成功返回true,失败返回FALSE
if ($stmt->execute()){
//$stmt -> fetch()不管你查询到几条数据,它只返回一行数据到一维数组;$stmt -> fetchall()将查询到的所有数据返回到二维数组
$system = $stmt -> fetch();
// var_dump($system);
}else{
die('<pre>'. print_r($stmt->errorInfo(),true));
}
//-->读取网站system数据:title,description,keyword
//<--读取网站导航分类数据
$sql = 'SELECT * FROM `wz_cates` ';
$stmt = $pdo -> prepare($sql);
if ($stmt ->execute()){
$cates = $stmt->fetchall();
// var_dump($cates);
}else{
die('<pre>'. print_r($stmt->errorInfo(),true));
}
//-->网站导航分类数据读取完毕
//-->读取视频信息数据
$sql = 'SELECT * FROM `wz_movies` ';
$stmt = $pdo -> prepare($sql);
if ($stmt ->execute()){
$movies = $stmt->fetchall();
// var_dump($movies);
}else{
die('<pre>'. print_r($stmt->errorInfo(),true));
}
?>
<!doctype html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="description" content=<?php echo $system['desc'] ;?>>
<meta name="keywords" content=<?php echo $system['key'] ;?>>
<link rel="stylesheet" href="./static/css/style.css">
<title><?php echo $system['title'] ;?></title>
</head>
<body>
<!-- 头部导航区-->
<div class="header">
<ul>
<li><a href="index.php">首页</a></li>
<?php foreach ($cates as $cate) {?>
<li><a href="list.php?<?php echo 'cate_id='.$cate['cate_id']?>"><?php echo $cate['alias']?></a></li>
<?php }?>
</ul>
</div>3、通过遍历数组的方法生成头部导航和index页
首页效果

index页代码
<?php
require __DIR__. "/inc/header.php";
?>
<div class="main">
<?php foreach ($cates as $cate) {?>
<h2><a href="list.php?<?php echo 'cate_id='.$cate['cate_id']?>">
<?php echo ' > '.$cate['alias']?></a>
</h2>
<ul>
<?php foreach ($movies as $movie) {
if ($cate['cate_id']==$movie['cate_id']){
echo '<li><a href="description.php?mov_id='.$movie['mov_id'].'">'.$movie['name'].'</a></li>';
}
}?>
</ul>
<?php }?>
</div>
<?php require __DIR__. "/inc/footer.php";?>4、通过get传值方式进行判断,结合数组遍历生成list页与Description页
list页效果

list页实现代码
<?php
require __DIR__. "/inc/header.php";
$cate_id = $_GET['cate_id'];
?>
<div class="main">
<?php
foreach ($cates as $cate) {
if ($cate_id == $cate['cate_id']) {
echo '<h2>' . $cate['alias'] . '</h2>';
}
}
echo '<ul>';
foreach ($movies as $movie) {
if ($cate_id==$movie['cate_id']){
echo '<li><a href="description.php?mov_id='.$movie['mov_id']
.'">'.$movie['name'].'</a></li>';
}
}
echo '</ul>';
?>
</div>
<?php require __DIR__. "/inc/footer.php";?>des页效果

Description页代码
<?php
require __DIR__. "/inc/header.php";
$mov_id = $_GET['mov_id'];
$img_path = "./static/images/";
?>
<div class="main">
<?php
foreach ($movies as $movie) {
if ($mov_id == $movie['mov_id']) {
echo '<h2>' . $movie['name'] . '</h2>';
echo '<img src="'.$img_path.$movie['image'].'">';
echo '<p>'.$movie['detail'].'</p>';
}
}
?>
</div>
<img src="" alt="">
<?php require __DIR__. "/inc/footer.php";?>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号