动态 php 标题取决于页面 ID 和使用 "if (isset"
dynamic php title depends on page id and using of "if (isset"
我正在尝试回显动态 php 标题取决于 seo 目的的页面 ID。
首先,我所有的页面都包含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
页面标题是:"Username 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 文件将保持不变。这肯定会节省您的一些服务器资源,因为服务器不需要查找多个条件并且代码也变得更清晰。
我正在尝试回显动态 php 标题取决于 seo 目的的页面 ID。
首先,我所有的页面都包含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
页面标题是:"Username 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 文件将保持不变。这肯定会节省您的一些服务器资源,因为服务器不需要查找多个条件并且代码也变得更清晰。