динамический заголовок php зависит от идентификатора страницы и использования «if (isset»)

Я пытаюсь отобразить динамические заголовки php в зависимости от идентификатора страницы для целей 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 Название страницы: «Категория 1 | mypage.com»

на article.php?article_id=1 Название страницы: «Статья 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"])) { в начале, я не подключаюсь к базе данных, и нет перегрузки к базе данных

4 голоса | спросил LetsSeo 20 SunEurope/Moscow2015-12-20T14:33:21+03:00Europe/Moscow12bEurope/MoscowSun, 20 Dec 2015 14:33:21 +0300 2015, 14:33:21

1 ответ


0

Кажется, все в порядке, но чтобы избавиться от слишком многих условий, я бы порекомендовал другой способ. Создайте заголовок на каждой странице, назначьте его переменной (перед включением вашего 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 останется прежним. Это наверняка сэкономит некоторые ресурсы вашего сервера, поскольку серверу не нужно искать несколько критериев, и код тоже станет чище.

ответил Rehmat 20 SunEurope/Moscow2015-12-20T15:57:00+03:00Europe/Moscow12bEurope/MoscowSun, 20 Dec 2015 15:57:00 +0300 2015, 15:57:00

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132