PHP活动页面代码 - 我无法弄清楚解析错误

时间:2010-06-06 04:48:35

标签: php mysql

我正在尝试使用PHP和MySQL构建一个活动的页面菜单,并且很难修复错误。在while语句中,我有一个if语句给我适合。基本上我认为我说“thispage”等于基于pageID的“title”,如果“thispage”等于“title”则菜单循环,则echo id =“active”。 感谢

<?php
    mysql_select_db($database_db_connection, $db_connection);
    $query_rsDaTa = "SELECT * FROM pages WHERE pagesID = 4";
    $rsDaTa = mysql_query($query_rsDaTa, $db_connection) or die(mysql_error());
    $row_rsDaTa = mysql_fetch_assoc($rsDaTa);
    $totalRows_rsDaTa = mysql_num_rows($rsDaTa);

    $query_rsMenu = "SELECT * FROM menu WHERE online = 1 ORDER BY menuPos ASC";
    $rsMenu = mysql_query($query_rsMenu, $db_connection) or die(mysql_error());

$thisPage = ($row_rsDaTa['title']); 
?>


<link href="../css/MainStyle.css" rel="stylesheet" type="text/css" />

<h2><?php echo $thisPage; ?></h2>

<div id="footcontainer">
<ul id="footlist">
<?php   
        while($row_rsMenu = mysql_fetch_assoc($rsMenu)) {
        echo ("   <li" .  <?php if ($thisPage==$row_rsDaTa['title']) echo  id="active"; ?> . "<a href=\"../" . $row_rsMenu['menuURL'] . "\">" . $row_rsMenu['menuName'] . "</a></li>\n");
        }
        echo "</ul>\n";
?>
</div>

<?php
    mysql_free_result($rsMenu);
    mysql_free_result($rsDaTa); 
?>

4 个答案:

答案 0 :(得分:1)

有点大毛茸茸的线条。我认为你需要通过将它分成多行来使它更容易一些。你的这一部分应该做什么呢?

echo id =“active”;

你的意思是 echo“id = \”active \“”;

注意我在“id”之前添加了一个空格,因为在LI

之后没有一个空格

答案 1 :(得分:0)

可以通过连续删除各种代码块来定位解析错误 如果错误仍然存​​在,请删除代码的某些部分并查看。 说,你可以暂时删除html部分。如果错误被消除了 - 就在这一部分。现在,您可以将此部分划分为较小的块,依此类推。因此,您可以非常接近地找到错误的行。

此外,错误消息通常包含有关错误的一些重要信息。

答案 2 :(得分:0)

首先,您将<?php嵌套在另一个<?php中。这导致:

syntax error, unexpected '<'

我们删除<?php?>。现在我看到你想要输出id,但你不告诉PHP它是一个字符串。用单引号括起来,以便echo id="active";变为echo ' id="active"';

如果不这样做,你就不能像这样继承if语句:

 echo ("   <li" .  if ($thisPage==$row_rsDaTa['title']) echo ' id="active"'; ...

如果您在当前页面上,可能需要引入一个存储字符串id="active"的变量。

$id = '';
if ($thisPage==$row_rsDaTa['title']) {
    $id = ' id="active"';
}

这段代码在重写时可能看起来像这样:

while($row_rsMenu = mysql_fetch_assoc($rsMenu)) {
    $active = '';
    if ($thisPage==$row_rsDaTa['title']) {
        $id = ' id="active"';
    }
    echo ("   <li" . $id . "<a href=\"../" . $row_rsMenu['menuURL'] . "\">" . 
        $row_rsMenu['menuName'] . "</a></li>\n");
}
echo "</ul>\n";

答案 3 :(得分:-1)

试试这个:

<?php
    mysql_select_db($database_db_connection, $db_connection);
    $query_rsDaTa = "SELECT * FROM pages WHERE pagesID = 4";
    $rsDaTa = mysql_query($query_rsDaTa, $db_connection) or die(mysql_error());
    $row_rsDaTa = mysql_fetch_assoc($rsDaTa);
    $totalRows_rsDaTa = mysql_num_rows($rsDaTa);

    $query_rsMenu = "SELECT * FROM menu WHERE online = 1 ORDER BY menuPos ASC";
    $rsMenu = mysql_query($query_rsMenu, $db_connection) or die(mysql_error());

$thisPage = ($row_rsDaTa['title']); 
?>


<link href="../css/MainStyle.css" rel="stylesheet" type="text/css" />

<h2><?php echo $thisPage; ?></h2>

<div id="footcontainer">
<ul id="footlist">
<?php
    while($row_rsMenu = mysql_fetch_assoc($rsMenu)) {
    $id = ($thisPage==$row_rsDaTa['title']) ? "id='active'" : "";
    echo "<li " . $id . "<a href='../" . $row_rsMenu['menuURL'] . "' >" . $row_rsMenu['menuName'] . "</a></li>\n";
    }
?>
</ul>
</div>
<?php
    mysql_free_result($rsMenu);
    mysql_free_result($rsDaTa); 
?>