电影网站案例(PDO读取数据库)-2019年9月20日

2019年10月06日 08:48:22阅读数:584博客 / 渊的博客 / PHP基础

1、header.php

实例

<?php
require 'conn.php';
$sql='select * from movies';
$cates='select * from category';
$stmt=$pdo->prepare($sql);
$cate=$pdo->prepare($cates);

if($cate->execute()){
	$catadata=$cate->fetchall();//分类查询
}

	// 第一步,获取数据	(之后我们会从数据库中拿数据出来)
	$title = '全球影视';

	// $fenlei = [
	// 	'gc.php' => '国产好剧',
	// 	'om.php' => '欧美猛片',
	// 	'ri.php' => '日韩新片'
	// ];

	// 以后 一条命令,从数据库中,获取数据
	// 注意:有规律的页面,数组里的数据也要有规律


	// 第二步,把数据 放在html代码中


?>

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<link rel="stylesheet" href="css/style.css">
		<title><?php echo $title; ?></title>
	</head>
	<body>
		<!--头部导航-->
		<div class="header">
			<ul class="nav">
				<li><a href="index.php">首页</a></li>

			<?php
			// var_dump($catadata);
				foreach($catadata as $v){
					echo '<li><a href=list.php?cate_id='.$v['cate_id'].'>';
					echo $v['alias'];
					echo '</a></li>';
				}
			?>

			</ul>
		</div>

运行实例 »

点击 "运行实例" 按钮查看在线实例

2、footer.php

实例

		<!--底部版权-->
		<div class="footer">
			<p class="copyright">商味书屋 © 版权所有</p>
		</div>
	</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

3、index.php

实例

<?php
	include_once 'header.php' ;
	if($stmt->execute()){
	$data=$stmt->fetchall();
	}

?>
		<!--分类、电影、循环-->
		<?php
			foreach($catadata as $k){
				echo '<h2>'  . $k['alias'] .  '</h2>';
				echo '<ol>';
					// 我们可以不用判断,去对第三维数组进行循环

					foreach($data as $v){
						if($k['cate_id']==$v['cate_id']){
							echo '<li><a href=detail.php?mov_id='.$v['mov_id'].'>';
							echo $v['name'];
							echo '</a></li>';
						}
					}
				echo '</ol>';
			}
		?>
<?php
	include 'footer.php';
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

10-6-01.png

4 list.php

实例

<?php
// 加载公共头部
include __DIR__ . '/header.php';
if($cate->execute()){
	$cates=$cate->fetchall();//分类查询
}
if($stmt->execute()){
	$movies=$stmt->fetchall();
}

	// 将当前栏目id,, 使用GET方式,通过URL地址传递到列表模板list.php

	// 获取url 上的 传值
	$cate_id = $_GET['cate_id'];
	// var_dump($cate_id);
	// 注意: url中的内容都是字符串, 整数字符串先做类型转换才可以
	//echo gettype($cate_id);die;

	// intval 把其他类型,转为整型

	// 不转换:不知道用户传来的是什么类型的数据,长度这些都不知道。 就可能影响后面的体验
	$cate_id = intval($cate_id);  // 函数转换

	// 将index.php中的主体代码简单修改一下
	// 只显示一个栏目, 不需要做循环, 只需要作一个判断即可
	foreach ($cates as $cate) {
		// 在index.php基础上加一层判断,确定是否是当前栏目即可
		// 如果上面的GET参数没有做类型转换, 那么这里就不能用===恒等
		// 必须使用==, 以触发系统的类型自动转换机掉, 我还是建议全等操作
		// == : 只比较值是否相等,  === : 值与类型,都必须完全相同

		if ($cate['cate_id'] == $cate_id) {
			echo "<h2>{$cate['alias']}</h2>";
			echo '<ol>';
			foreach ($movies as $movie) {
				if ($cate['cate_id'] == $movie['cate_id']) {
					echo "<li><a href='detail.php?mov_id=" .$movie['mov_id']. "'>{$movie['name']}</a></li>";
				}
			}
			echo '</ol>';
			break; // 结束循环
		};
	}

// 加载公共底部
include __DIR__ . '/footer.php';

运行实例 »

点击 "运行实例" 按钮查看在线实例

10-6-02.png

5 detail.php

实例

<?php
// 加载公共头部
include __DIR__ . '/header.php';
if($stmt->execute()){
    $movies=$stmt->fetchall();
}

	$mov_id = intval($_GET['mov_id']);
    // var_dump($mov_id);

	// 复制list.php模板直接修改
	foreach ($movies as $movie) {
		if ($movie['mov_id'] == $mov_id) {
			echo "<h3>{$movie['name']}</h3>";
			echo '<img src="./img/'.$movie['image'].'" alt="" width="300">';
			echo "<p style='text-indent: 2em'>{$movie['detail']}</p>";
		}
	};

// 加载公共底部
include __DIR__ . '/footer.php';

运行实例 »

点击 "运行实例" 按钮查看在线实例

10-6-03.png


批改状态:合格

老师批语:提交时, 可将测试代码或中间代码删除, 只提交正式代码就可以

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • 博主信息
    渊的博客
    博文
    27
    粉丝
    0
    评论
    0
    访问量
    19972
    积分:0
    P豆:56