Я призываю свою базу данных MySQL опубликовать название категории в теге title в band_cat_list.php.
Это код для добавления его в заголовок:
BAND_CAT_LIST.PHP
<head>
<?php
include ('database.php');
$get_title = "SELECT * FROM `Categories`";
$run_title = mysql_query($get_title);
while ($row_title = mysql_fetch_array($run_title)){
$cat_id = $row_title['cat_id'];
$cat_title = $row_title['cat_title'];
echo "<title>Offstreams - $cat_title</title>";
}
?>
</head>
Внутри index.php я публикую категории. Категории отображают без проблем, и когда я нажимаю на них, они переходят на соответствующую страницу, которая является «index.php? Band_cat_list»&кот = $ category_id»
INDEX.PHP
<div class="header_links">
<ul class="header_ul">
<?php
include("includes/database.php");
$get_categories = "select * from Categories";
$run_categories = mysql_query($get_categories);
if (!$run_categories) { // add this check.
die('Invalid query: ' . mysql_error());
}
while ($category_row=mysql_fetch_array($run_categories)){
$category_id = $category_row['cat_id'];
$category_title = $category_row['cat_title'];
echo "<li class='header_li' align='center'><a href='index.php?band_cat_list&cat=$category_id'>$category_title</a></li>";
}
?>
</ul>
</div>
Я использую PHP 5.4 на своем сервере, поэтому я знаю, что функция mysql_fetch_array () не устарела. Но я не могу понять это. Когда я нажимаю на любую из категорий, она публикует только первую в списке в теге заголовка. Пожалуйста помоги.
Вы не можете иметь несколько тегов заголовка на странице HTML.
Код, который вы написали, будет выводить несколько тегов заголовков, если у вас есть несколько записей внутри категорий. Если я понимаю, что вы пытаетесь сделать, должно работать следующее:
<head>
<?php
include ('database.php');
$id = isset($_GET['cat']) ? $_GET['cat'] : exit("cat id is missing");
$get_title = "SELECT * FROM `Categories` WHERE `cat_id` = '{$id}'";
$run_title = mysql_query($get_title);
while ($row_title = mysql_fetch_assoc($run_title)){
$cat_id = $row_title['cat_id'];
$cat_title = $row_title['cat_title'];
echo "<title>Offstreams - $cat_title</title>";
}
?>
</head>
PS: вы не должны использовать расширение mysql, поскольку оно устарело и больше не поддерживается. Попробуйте использовать MySQL вместо
ОБНОВИТЬ:
Вы должны изменить свой файл index.php на
INDEX.PHP
<div class="header_links">
<ul class="header_ul">
<?php
include("includes/database.php");
$get_categories = "select * from Categories";
$run_categories = mysql_query($get_categories);
if (!$run_categories) { // add this check.
die('Invalid query: ' . mysql_error());
}
while ($category_row=mysql_fetch_array($run_categories)){
$category_id = $category_row['cat_id'];
$category_title = $category_row['cat_title'];
echo "<li class='header_li' align='center'><a href='BAND_CAT_LIST.php?band_cat_list&cat=$category_id'>$category_title</a></li>";
}
?>
</ul>
</div>
Ваш BAND_CAT_LIST.php должен отображать заголовок как «Offstreams — $ selected_category»
<head>
<?php
include ('database.php');
$id = isset($_GET['cat']) ? $_GET['cat'] : false;
if($id) {
$get_title = "SELECT * FROM `Categories` WHERE `cat_id` = '{$id}'";
$run_title = mysql_query($get_title);
while ($row_title = mysql_fetch_assoc($run_title)){
$cat_id = $row_title['cat_id'];
$cat_title = $row_title['cat_title'];
echo "<title>Offstreams - $cat_title</title>";
}
}
?>
</head>
Переместить ваш echo
за пределами вашего цикла. Кроме того, если $cat_title
это массив, вам нужно будет преобразовать его в строку и, вероятно, отформатировать его.
BAND_CAT_LIST.PHP
<head>
<?php
include ('database.php');
$get_title = "SELECT * FROM `Categories`";
$run_title = mysql_query($get_title);
$cat_title = array();
while ($row_title = mysql_fetch_array($run_title)){
$cat_id = $row_title['cat_id'];
$cat_title = $row_title['cat_title'];
}
if (is_array($cat_title)) {
$cat_title = implode(" - ", $cat_title);
}
echo "<title>Offstreams - $cat_title['cat_title']</title>";
?>
</head>