我正在尝试使用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);
?>
答案 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);
?>