利用SQL查询语句管理电影网站的数据:
网站头部代码:
实例
<?php //1.连接数据库 require 'connect.php'; //2.获取影视信息 $sql = 'SELECT * FROM `movies`'; $stmt = $pdo->prepare($sql); $stmt->execute(); $movies = $stmt->fetchAll(PDO::FETCH_ASSOC); //3.获取栏目信息 $sql = 'SELECT * FROM `category`'; $stmt = $pdo->prepare($sql); $stmt->execute(); $cates = $stmt->fetchAll(PDO::FETCH_ASSOC); //4.获取网站的配置信息 $sql = 'SELECT * FROM `system` LIMIT 1'; $stmt = $pdo->prepare($sql); $stmt->execute(); $system = $stmt->fetchAll(PDO::FETCH_ASSOC); //关闭数据库连接 $pdo = null; ?> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="static/css/style.css"> <meta name="description" content="<?php echo $system[0]['desc'] ?>"> <meta name="keywords" content="<?php echo $system[0]['key'] ?>"> <title><?php echo $system[0]['title'] ?></title> </head> <body> <!--头部导航--> <div class="header"> <ul class="nav"> <li><a href="index.php">首页</a></li> <?php foreach ($cates as $cate) : ?> <li><a href="list.php?cate_id=<?php echo $cate['cate_id']; ?>"><?php echo $cate['alias'] ?></a></li> <?php endforeach; ?> </ul> </div>
运行实例 »
点击 "运行实例" 按钮查看在线实例
网站底部代码:
实例
<!--底部版权--> <div class="footer"> <p class="copyright"><?php echo $system[0]['copy']; ?>© 版权所有</p> </div> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
网站首页代码:
实例
<?php // 加载公共头部 include __DIR__ . "/inc/header.php"; // 使用双重循环来遍历二个数组 // 外层遍历栏目数组$cates, 内层根据栏目id来查询对应的影视剧信息 foreach ($cates as $cate) { echo "<h2>{$cate['alias']}</h2>"; echo '<ol>'; // 遍历影视剧数组 foreach ($movies as $movie) { // 判断当前影视剧所属栏目是否与当前栏目id相同? if ($cate['cate_id'] === $movie['cate_id']) { echo "<li><a href='detail.php?mov_id=" .$movie['mov_id']. "'>{$movie['name']}</a></li>"; } } echo '</ol>'; } // 加载公共底部 include __DIR__ . '/inc/footer.php';
运行实例 »
点击 "运行实例" 按钮查看在线实例
栏目页代码:
实例
<?php // 加载公共头部 include 'inc/header.php'; // 将当前栏目id,, 使用GET方式,通过URL地址传递到列表模板list.php $cate_id = $_GET['cate_id']; //注意:从数据库中获取的数据都是字符串,所以现在不需要类型转换 // 注意: url中的内容都是字符串, 整数字符串先做类型转换才可以 //echo gettype($cate_id);die //$cate_id = intval($cate_id); // 函数转换 //$cate_id = (int)$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>'; }; } // 加载公共底部 include 'inc/footer.php';
运行实例 »
点击 "运行实例" 按钮查看在线实例
内容页代码:
实例
<?php // 加载公共头部 include 'inc/header.php'; //$mov_id = intval($_GET['mov_id']); //从数据库中获取数据都是字符串类型输出,不需要类型转换 $mov_id = $_GET['mov_id']; // 复制list.php模板直接修改 foreach ($movies as $movie) { if ($movie['mov_id'] === $mov_id) { echo "<h3>{$movie['name']}</h3>"; echo '<img src="static/images/'.$movie['image'].'" alt="" width="300">'; echo "<p style='text-indent: 2em'>{$movie['detail']}</p>"; } }; // 加载公共底部 include 'inc/footer.php';
运行实例 »
点击 "运行实例" 按钮查看在线实例
最终首页显示效果:
电影网站栏目页显示效果:
电影网站内容页显示效果:
熟悉和掌握cookie的函数和超全局变量:
实例
<?php //添加cookie setcookie('username','name',time()+30); setcookie('user_id','888',time()+30); //删除cookie setcookie('username',null,time()-3600); setcookie('user_id',null,time()-3600); //修改cookie也是用setcookie设置,如果直接在$_COOKIE中赋值,cookie的值是不会有变化的,变化的是页面中输出的值 //在页面中打印cookie,用超全局变量$_COOKIE print_r($_COOKIE);
运行实例 »
点击 "运行实例" 按钮查看在线实例
页面中打印代码执行效果(因为最后将全部cookie都删除了,所以输出为空):
熟悉和掌握session的函数和超全局变量:
实例
<?php //开启,向浏览器的cookie中写入session_id session_start(); //赋值 $_SESSION['username'] = 'Nick'; //服务器中的session文件 //username|s:4:"Nick"; //被序列化的变量 //修改 $_SESSION['username'] = 'www.php.cn'; //查询 echo $_SESSION['username']; //删除 session_unset(); //清空内容,而服务器上的session仍在 session_destroy(); //内容 + 文件 双清空,通常做到这一步就OK //清除浏览器中的cookie:内容 + 文件 + session_id 三位一体全部清空 setcookie('PHPSESSID',null,time()-3600);
运行实例 »
点击 "运行实例" 按钮查看在线实例