Blogger Information
Blog 13
fans 0
comment 2
visits 9491
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
7.25改写23日案例,用数据库管理网站内容
55555的博客
Original
851 people have browsed it

    数据库

1、system表:网站的配置信息

1.png

2、category表:栏目表

2.png

3、detailsList表:内容详情表

3.png


一、公共部分

  • database.php

    连接数据库参数设置:

  •     $dsn = '数据库的类型:host=数据库主机名; dbname=数据库名称';

<?php

return[
    'type' => 'mysql',
    'host' => '127.0.0.1',
    'dbname' => 'php',
    'username' => 'root',
    'password' => ''
];


  • connect.php

            连接数据库

<?php
//  连接数据库:PDO

$db = require 'database.php';

//  $dsn = '数据库的类型:host=数据库主机名; dbname=数据库名称';
$dsn = "{$db['type']}:host={$db['host']}; dbname={$db['dbname']}";
$username = $db['username'];
$password = $db['password'];

try{
    $pdo = new PDO($dsn, $username, $password);
    //var_dump($pdo);
}catch (PDOException $e){
    die('数据库连接失: ' . $e->getMessage());
}


  • 头部 header.php

  • <?php
    //  1、连接数据库
    require __DIR__ . '/connect.php';
    
    //  2、获取网站的配置信息
    $sql = 'SELECT * FROM `system` limit 1';
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $system = $stmt->fetch(PDO::FETCH_ASSOC);
    
    //  3、获取栏目信息
    $sql = 'SELECT `cate_id`, `name`, `alias` FROM `category`';
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $cates = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $cate_count = count($cates);
    
    //  4、获取详细信息
    $sql = 'SELECT * FROM detailsList';
    $stmt = $pdo->prepare($sql);
    $stmt -> execute();
    $detailsList = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    ?>
    
    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
     content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title><?php echo $system['title'] ?></title>
        <meta name="keywords" content="<?php echo $system['key'] ?>">
        <meta name="description" content="<?php echo $system['desc'] ?>">
        <link rel="stylesheet" href="./static/css/style.css">
    </head>
    <body>
    <div class="header">
        <ul class="nav">
            <li><a href="index.php">首页</a></li>
            <li><a href="">***介绍</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>


  • 底部 footer.php

<p class="footer"><?php echo $system['copy'] ?> @ 版权所有</p>

</body>
</html>


二、首页、列表页、详情页

        1、首页 index.php

<?php
header("content-type:text/html;charset=utf-8");
// 加载公共头部
include __DIR__. "/inc/header.php";
?>

    <h2>***介绍</h2>
    <p>本院坚持“专家技术型”发展战略,组建了一支由医学博士、硕士等精英组成的,具有专业水准的医疗技术团队,其中医务人员
        一百余名,高级职称三十余名,中级职称五十余名。全院各科室学科带头人由临床经验丰富的权威医学专家担任,
        他们来自于同济、协和、省人民、省妇幼、中南、陆总、武警等***。</p>

<?php
//  使用双重循环来遍历两个数组
//  外层遍历栏目数组$cates,内层根据栏目id来查询对应的栏目详情 $detailsList 信息
foreach ($cates as $cate){
    echo "<h2>{$cate['alias']}</h2>";
    echo '<ol>';

    //  遍历栏目详情数组
    foreach ($detailsList as $list){
        // 判断当前栏目详情所属栏目是否与当前栏目id相同
        if($list['cate_id'] === $cate['cate_id']){
            echo "<li><a href='detail.php?deta_id=". $list['deta_id'] ."'>{$list['title']}</a></li>";
        }
    }
    echo '</ol>';
}
?>



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

?>


    2、列表页

<?php
header("content-type:text/html;charset=utf-8");
require __DIR__ . '/inc/header.php';

$cate_id = $_GET['cate_id'];
//var_dump($cate_id);die; string类型
foreach ($cates as $cate){

    if($cate['cate_id'] === $cate_id){
        echo "<h2>{$cate['alias']}</h2>";
        echo '<ul>';
        //  遍历 detailsList 详情表
        foreach ($detailsList as $list){
            if($cate['cate_id'] === $list['cate_id']){
                echo "<li><a href='detail.php?deta_id=".$list['cate_id']."'>{$list['title']}</a></li>";
            }
        }
        echo '</ul>';
    }
}

include __DIR__ . '/inc/footer.php';


    3、详情页

<?php
header("content-type:text/html;charset=utf-8");
include __DIR__ . '/inc/header.php';

$deta_id = $_GET['deta_id'];

foreach ($detailsList as $detail){
    if($detail['deta_id'] === $deta_id ){
        echo "<h3>{$detail['title']}</h3>";
        echo '<img src="./images/'. $detail['img'] .'" alt="" width="350px">';
        echo "<p>{$detail['detail']}</p>";
    }
}

include __DIR__ . '/inc/footer.php';


Correction status:qualified

Teacher's comments:如果GET参数不做类型转换的话, 直接进行全等比较会有问题, 因为GET默认为全是字符串类型, 而数据表中的数据读出的类型有可能与之不匹配
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