0

我正在呼应数据库涵盖的区域列表。该列表具有从数据库中获取的标题和子标题,

$area_shire = '';
$area_district = '';
$area_name = '';

while($rows = mysql_fetch_array($query)):

    if($rows['area_shire'] != $area_shire) {

        echo '<h1>'.$rows['area_shire'].'</h1>';
        $area_shire = $rows['area_shire'];
    }

    /* same for district using h2 and name using h3 */

endwhile;

我现在想让每个结果都成为超文本 url,所以我添加了

$area_shire_url = str_replace(' ', '_', $area_shire);
$area_district_url = str_replace(' ', '_', $area_district);
$area_name_url = str_replace(' ', '_', $area_name);

并将每个回声更改为

 echo '<a href=\"Tree_Surgery_'.$area_shire_url.'.php\"><h2>'.$rows['area_shire'].'<br></h2>';
$area_shire = $rows['area_shire'];}

  /* same for district using h2 and name using h3 */

这根本不起作用?

4

3 回答 3

1

'<a href=\"Tr

我认为你不需要逃避,"因为你没有"用来定义你的 php 语句。

于 2012-12-06T17:04:34.523 回答
1

我会将片段重写为:

$area_shire = '';
$area_district = '';
$area_name = '';

while($rows = mysql_fetch_assoc($query)) {
    if ($rows['area_shire'] != $area_shire) {
        $area_shire = $rows['area_shire'];
        $area_shire_url = 'Tree_Surgery_'.str_replace(' ', '_', $area_shire).'.php';
        echo '<h2><a href="'.$area_shire_url.'">'.$area_shire.'</a></h2><br>';
    }

    // same for district using h2 and name using h3
}

您的错误似乎是您"在单引号字符串中转义了 while。使用 时',php 将按原样回显所有包含的字符;无需转义。

请注意,我还使用了mysql_fetch_assoc而不是mysql_fetch_array并重新排列了 HTML 标记的顺序,以避免将块级元素嵌套在inline elements中。

我还选择将完整的 url 存储在一个变量中,而不是只存储它的一部分并在 echo 语句中将其组合成完整的 url。在我看来,这更容易阅读。特别是当您想稍后编辑内容时。

于 2012-12-06T17:18:29.943 回答
0

您不需要转义双引号,因为文本不在双引号内。}您的代码末尾似乎也有一个,除非这不是所有代码,否则这不是必需的。

我没有看到这种格式或while循环,请尝试将其更改为:

while($rows = mysql_fetch_array($query)){
    // do stuff
}

更重要的是,你还没有结束你的a标签。结束你的行</a>

于 2012-12-06T17:15:02.710 回答