博客列表 >将电影网站的内容用数据库来进行管理;熟悉和掌握cookie和session中的常用函数以及超全局变量(利用SQL查询语句管理电影网站的数据,熟悉和掌握cookie和session的函数和超全局变量)2019年6月6日20点

将电影网站的内容用数据库来进行管理;熟悉和掌握cookie和session中的常用函数以及超全局变量(利用SQL查询语句管理电影网站的数据,熟悉和掌握cookie和session的函数和超全局变量)2019年6月6日20点

Nick的博客
Nick的博客原创
2019年06月09日 22:32:38764浏览

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

运行实例 »

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


最终首页显示效果:

电影网站首页.png


电影网站栏目页显示效果:

电影网站栏目页.png


电影网站内容页显示效果:

电影网站内容页.png



熟悉和掌握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都删除了,所以输出为空):

cookie.png



熟悉和掌握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);

运行实例 »

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


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议