Blogger Information
Blog 34
fans 1
comment 1
visits 40867
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
用数据库管理网站内容,PHP写一个网站小案例——2019年7月25日23时38分
嘿哈的博客
Original
1153 people have browsed it

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


Correction status:qualified

Teacher's comments:这个案例主要是考察php与html代码的混写与模板语法 , 还有就是http请求中的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