@VladimirPortev

Как сделать динамический title с помощью PHP и MySQL?

Добрый день. Мне нужно, чтобы на каждую страницу сайта подставлялся свой title. Для страницы
Новости/11111/index.php - title := (расписание 1 - новости) (в контенте расписание 1 - это заголовок новости)
Статьи/123214/index.php - title := (текст о тексте - статьи) (в контенте текст о тексте - это заголовок статьи)
Все заголовки и новостей и статей лежат в одной Sql таблице с именем таблицы qwerty, и именем столбца title.
Мой код:
<?
// делаем выборку из таблицы
$result=mysql_query('SELECT title FROM qwerty');

// берем результаты из каждой строки
while ($row=mysql_fetch_array($result))
{ // выводим данные
  echo '<title>'.$row['title'].'</title>';
}
?>

На выходе для всех статей, новостей и других страниц подставляется только title первой новости : Расписание 1.
Был еще такой вариант:
<?
// делаем выборку из таблицы
$result=mysql_query('SELECT title FROM qwerty WHERE id = '".$_GET['id']."'');
// берем результаты из каждой строки
while ($row=mysql_fetch_array($result))
{ // выводим данные
  echo '<title>'.$row['title'].'</title>';
}
?>

Он не работает совсем.

Вопрос: как сделать для каждой страницы свой title?
  • Вопрос задан
  • 2104 просмотра
Пригласить эксперта
Ответы на вопрос 3
@porozhnyy
mysql_*
Вы серьезно? 2017 год на носу, php 7.1 зарелизили...
Прочитайте документацию по php сначала, советую. И про то, почему сразу $_GET['id'] в запрос писать плохо(sql-инъекция)
Ответ написан
Комментировать
SerafimArts
@SerafimArts
Senior Notepad Reader
Как сказал выше Иван - ваш код не будет работать
1) Функций `mysql_` в пыхе нету уже более 2-3х лет. И уже более 5ти лет помечен как устаревший.
2) Открывающие `<?` на подавляющем большинстве серверов работать не будет.
3) Закрывающий `?>` запрещён стандартом (в 2017ом это уже номинально не рекомендация, а стандарт) PSR, так же как и почти весь код в примерах.
4) Интерполяция `$_GET` вместо препаред статментс добровольно превращает ваш код в один большой бекдор.

Исправление п.4 и п.1 сделает работоспособным ваш вариант кода номер 2, который является корректным ответом на вопрос.
Ответ написан
Комментировать
AronTito
@AronTito
разработчик-любитель web приложений и сайтов.
Так заработает!

$id = $_GET['id'];
$result = mysql_query("SELECT title FROM qwerty WHERE id = '$id'");
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы