Blogger Information
Blog 49
fans 1
comment 0
visits 45178
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
将电影网站的内容用数据库来进行管理;熟悉和掌握cookie和session中的常用函数以及超全局变量(利用SQL查询语句管理电影网站的数据,熟悉和掌握cookie和session的函数和超全局变量)2019年6月6日20点
Nick的博客
Original
765 people have browsed it

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

运行实例 »

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


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!