欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-20 23:17:58
...

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';
?>

运行实例 »

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

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

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';

运行实例 »

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

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

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';

运行实例 »

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

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