博客列表 >用数据库管理网站内容,PHP写一个网站小案例——2019年7月25日23时38分

用数据库管理网站内容,PHP写一个网站小案例——2019年7月25日23时38分

嘿哈的博客
嘿哈的博客原创
2019年07月27日 13:21:471157浏览

1.用database.php return数据库信息;

2.用connect.php 导入database.php文件,PDO连接数据库;

3.在公共头文件header.php导入connect.php文件连接数据库,获取来自数据表的网站内容

4.用select来查询数据表的网站内容,然后进行fetch或fetchAll遍历

效果看这个网站 pc.wenbus.cn/0725/index.php  二级域名,老师批改的时候直接复制下域名

博客会屏蔽掉我们发的链接 pc.wenbus.cn/0725/index.php

database.php代码:

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

connect.php连接数据库代码

<?php
$db = require __DIR__ .'/database.php';
$dsn = "{$db['type']:host={$db['host];dbname={$db['dbname']}";
$username = $db['username'];
$password = $db['password'];
try{
$pdo -> prepare($dsn,$username,$password);
}catch(PDOException $e){
    echo '连接失败'.$e -> getMessage();
}


header公共头文件(获取数据表的网站内容)


实例

<?php
    // 获取数据库连接文件
    require __DIR__ . '/connect.php';
//    系统内容设置参数
    $stmt = $pdo->prepare('SELECT * FROM `system` LIMIT 1');
    $stmt ->execute();
    $system = $stmt ->fetch(PDO::FETCH_ASSOC);
//    栏目数据
    $sql = 'SELECT `cate_id`, `name`,`alias`  FROM `cagegory`';
    $stmt = $pdo-> prepare($sql);
    $stmt->execute();
    $cates=$stmt->fetchAll(PDO::FETCH_ASSOC);
    $cate_count = count($cates);
//    内容数据
    $stmt = $pdo->prepare('SELECT `detail_id`,`name`,`image`,`detail`,`cate_id` FROM `details`');
    $stmt -> execute();
    $details = $stmt -> fetchAll(PDO::FETCH_ASSOC);
?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="description" content="<?php echo $system['desc']; ?>">
    <meta name="key" content="<?php echo $system['key']; ?>">
    <link rel="stylesheet" href="inc/style.css">
    <title><?php echo $system['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>

运行实例 »

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


这是首页index.php代码实例

<?php
//    头部公共组件
    include __DIR__ .'/inc/header.php';

//    网页内容区

//遍历栏目
    foreach ($cates as $cate){

        echo "<h3> {$cate['alias']} </h3>";

        echo '<ol>';

//            遍历内容数据
            foreach ($details as $detail){
//                print_r($detail['cate_id']);
//                当栏目的cate_id与数据的cate_id对应,显示内部数据,类似分类
                if ($cate['cate_id'] === $detail['cate_id']){
                    echo "<li><a href='detail.php?detail_id=".$detail['detail_id']."'>{$detail['name']}</a></li>";
                }
            }

        echo '</ol>';
    }

//    尾部公共组件
    include __DIR__ .'/inc/footer.php';

运行实例 »

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


这是列表页模板list.php代码实例

<?php
//    头部公共组件
include __DIR__ .'/inc/header.php';

//获取栏目id
$cate_id = $_GET['cate_id'];

//函数转换
//$cate_id = intval($cate_id);  
//这里intval处理ID后,是int整数类型,在foreach遍历时,$cate['cate_id']用dump获取是字符串类型

//var_dump($cate_id); 是int整数类型

//遍历栏目

foreach ($cates as $cate){

//    var_dump($cate['cate_id']); 这里dump获取到数据是字符串string类型

//    用获取的栏目cate_id来判断 输出于获取到的栏目id相同的栏目数据
    if($cate['cate_id'] === $cate_id){
        echo "<h3> {$cate['alias']} </h3>";
        echo '<ol>';
        
//        遍历内容数据区
        foreach ($details as $detail){
        
//        用获取的栏目cate_id与内容数据中的cate_id进行判断 输出等同的内容数据
        if ($cate['cate_id'] === $detail['cate_id']){
        echo "<li><a href='detail.php?detail_id=".$detail['detail_id']."'>{$detail['name']}</a></li>";
            }
        }

        echo '</ol>';
    }

}

//    尾部公共组件
include __DIR__ .'/inc/footer.php';

运行实例 »

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

数据表

1.jpg

2.png


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