【问题标题】:PHP active page code - I can't figure out parse errorPHP 活动页面代码 - 我无法弄清楚解析错误
【发布时间】:2010-06-06 04:48:35
【问题描述】:

我正在尝试使用 PHP 和 MySQL 构建一个活动页面菜单,并且很难修复错误。在 while 语句中,我有一个 if 语句让我很适合。基本上我想我是说“thispage”等于基于pageID的“title”,并且如果“thispage”等于“title”则回显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); 
?>

【问题讨论】:

  • 这个问题太本地化了,不能帮助任何人。

标签: php mysql


【解决方案1】:

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

echo id="active";

你的意思是 回声“id=\”活动\“”;

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

【讨论】:

    【解决方案2】:

    可以通过连续删除各种代码块来定位解析错误。
    删除代码的某些部分,看看是否仍然存在错误。 说,您可以暂时删除 html 部分。如果错误被消除 - 它在这部分。现在你可以把这部分分成更小的块等等。因此,您可以非常接近地定位错误线。

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

    【讨论】:

      【解决方案3】:

      首先,您将&lt;?php 嵌套在另一个&lt;?php 中。这会导致:

      syntax error, unexpected '<'
      

      让我们同时删除&lt;?php?&gt;。现在我看到您希望输出 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";
      

      【讨论】:

      • 非常感谢您的解释!!!他们对我很有帮助。我将 active ='' 更改为 id='' 并且效果很好。我非常感谢您的帮助
      【解决方案4】:

      试试这个:

      <?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); 
      ?>
      

      【讨论】:

      • 感谢大家的帮助。我得到了这个与我最后的几个额外的模块一起工作的好。我在 pages 表中添加了一个 MenuID 列以引用菜单表。现在对我来说似乎更有效,并且对您发布的代码稍作调整后,我将 row_rsDaTa['title'] 引用更改为 row_rsDaTa['menuID'] ,一切都很开心!再次感谢
      猜你喜欢
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多