从循环,超文本URL中获取结果

时间:2012-12-06 17:01:33

标签: php mysql url while-loop

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

$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;

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

$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 */

这根本没用?

3 个答案:

答案 0 :(得分:1)

'<a href=\"Tr

我认为您不需要转义",因为您没有使用"来定义您的php语句。

答案 1 :(得分: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
}

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

请注意,我还使用了mysql_fetch_assoc代替mysql_fetch_array并重新排列了HTML标记的顺序,以避免在block-level elements内嵌套inline elements

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

答案 2 :(得分:0)

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

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

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

更重要的是,您尚未结束a标记。以</a>

结束您的行