2014-10-07 69 views
0

我打电话给我的MySQL数据库,在band_cat_list.php的标题标签中发布类别的名称。 这是添加入标题代码: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()不被弃用。但我无法弄清楚。当我点击任何类别时,它只会在标题标签中列出第一个类别。请帮忙。

回答

1

在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扩展。尝试使用mysqli的,而不是

UPDATE:

你应该chnage你的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> 
+0

我有六个记录显示。 error_log在任何地方都没有显示语法的迹象,所以我不知道错误是什么。它应该显示一些内容,但它只显示数据库中的第一条记录,而不管我在哪个页面上。 – 2014-10-07 00:19:31

+0

@ user3638852什么页面应显示标题标签BAND_CAT_LIST.PHP或INDEX.PHP? – 2014-10-07 00:21:32

+0

我正在编码INDEX.PHP上的所有内容,并将乐队类别链接到BAND_CAT_LIST.PHP,其中标题标签与正文中的乐队列表一起。 – 2014-10-07 00:46:26

0

将您的echo移到您的while循环之外。另外,如果$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> 
+0

我试过了,但不是显示数据库中的第一条记录是“Home”,现在只显示最后一条是“Other”。我把它放在while循环中,希望它会根据访问的类别进行刷新。 – 2014-10-07 00:22:09

+0

好的,那是因为你没有指定'$ cat_title'需要是一个数组并且保存多个值。它只有一个价值。我会更新我的答案。 – EternalHour 2014-10-07 00:23:48

+0

它似乎仍然不能正常工作。我似乎无法弄清楚问题所在。 – 2014-10-07 00:34:35