批改狀態(tài):合格
老師批語:這個案例主要是考察php與html代碼的混寫與模板語法 , 還有就是http請求中的get, 是如果將多個頁面之間串在一起的
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 二級域名,老師批改的時候直接復制下域名
博客會屏蔽掉我們發(fā)的鏈接 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'; // 系統(tǒng)內容設置參數 $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>
點擊 "運行實例" 按鈕查看在線實例
<?php // 頭部公共組件 include __DIR__ .'/inc/header.php'; // 網頁內容區(qū) //遍歷欄目 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';
點擊 "運行實例" 按鈕查看在線實例
<?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>'; // 遍歷內容數據區(qū) 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';
點擊 "運行實例" 按鈕查看在線實例
數據表
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號