我试图回应动态PHP标题取决于页面ID为seo目的.
首先,我的所有页面都包含header.php
这就是我的header.php开始的方式:
include("database.php");
//connect tables in order to echo out titles
//1- connect to categories table if isset get category_id
if (isset($_GET["category_id"])) {
$query = $handler->query("SELECT * FROM categories WHERE category_id = ".$_GET['category_id']." ");
while($r = $query->fetch()) {
$title = $r["title"];
}
}
//2- connect to articles table if isset get article_id
if (isset($_GET["article_id"])) {
$query = $handler->query("SELECT * FROM articles WHERE article_id = ".$_GET['article_id']." ");
while($r = $query->fetch()) {
$title = $r["title"];
}
}
//3- connect to users table if isset get user_id
if (isset($_GET["user_id"])) {
$query = $handler->query("SELECT * FROM users WHERE user_id = ".$_GET['user_id']." ");
while($r = $query->fetch()) {
$title = $r["username"];
}
}
之后我可以随意回复下面的标题:
<title><?php if (isset($_GET["category_id"])) { echo $title; echo " |"; }
if (isset($_GET["article_id"])) { echo $title; echo " |"; }
if (isset($_GET["user_id"])) { echo $title; echo " |"; } ?> mypage.com</title>
*
这是结果:
在category.php?category_id = 1页面标题是:“Category 1 | mypage.com”
在article.php?article_id = 1页面标题是:“Article 1 | mypage.com”
在users.php?user_id = 1页面标题是:“用户名1 | mypage.com”
*
我的问题是,我想知道我是否过度使用这种结构加载数据库?
当我在users.php上时?user_id = 1是php还是执行这段代码吗?:
//1- connect to categories table if isset get category_id
if (isset($_GET["category_id"])) {
$query = $handler->query("SELECT * FROM categories WHERE category_id = ".$_GET['category_id']." ");
while($r = $query->fetch()) {
$title = $r["title"];
}
}
或者因为我正在使用if(isset($_ GET [“category_id”])){在开始我没有连接到数据库并且数据库没有过载?
解决方法:
似乎没关系,但要摆脱太多条件,我会推荐另一种方式.在每个页面上生成标题,将其分配给变量(在包含header.php之前),然后简单地回显标题.
这是一个例子:
category.php:
<?php
require_once"database.php";
if(isset($_GET["category_id"])) {
$query = $handler->query("SELECT * FROM categories WHERE category_id = ".$_GET['category_id']." ");
while($r = $query->fetch()) {
$title = $r["title"];
}
} else {
// redirect somewhere else
}
include"header.php";
?>
<body>
Content goes here
</body>
</html>
header.php文件:
<!DOCTYPE html>
<html>
<head>
<title><?php echo $title;?></title>
</head>
对其他文件也一样.即您的users.php文件将如下所示:
<?php
require_once"database.php";
if (isset($_GET["user_id"])) {
$query = $handler->query("SELECT * FROM users WHERE user_id = ".$_GET['user_id']." ");
while($r = $query->fetch()) {
$title = $r["username"];
}
} else {
// redirect somewhere else
}
include"header.php";
?>
<body>
Content goes here
</body>
</html>
header.php文件将保持不变.这将节省一些服务器资源,因为服务器不需要查找多个条件,代码也变得更清晰.
原文地址:https://codeday.me/bug/20190623/1270983.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。