Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中的菜单项之间添加分隔符,但不能在末尾添加分隔符_Php_Mysql_Loops - Fatal编程技术网

如何在PHP中的菜单项之间添加分隔符,但不能在末尾添加分隔符

如何在PHP中的菜单项之间添加分隔符,但不能在末尾添加分隔符,php,mysql,loops,Php,Mysql,Loops,我试图在菜单项之间放置一个图像作为分隔符,但不在外部,我不知道如何做到这一点。。所以最终会是这样的: 主页|关于|联系人 不幸的是,我的代码在每个条目后面都放了一个,包括最后一个条目 mysql_select_db($database_db_connection, $db_connection); $query_rsMenu = "SELECT * FROM menu WHERE online = 1 ORDER BY position ASC"; $rsMenu = mysql_query($

我试图在菜单项之间放置一个图像作为分隔符,但不在外部,我不知道如何做到这一点。。所以最终会是这样的:

主页|关于|联系人

不幸的是,我的代码在每个条目后面都放了一个,包括最后一个条目

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

echo "<ul class='MenuBarVertical'>\n";
    while($row_rsMenu = mysql_fetch_assoc($rsMenu)) {
    echo ("   <li><a href=\"../" . $row_rsMenu['menuURL'] . "\">" . $row_rsMenu['menuName'] . "</a> <img src='SiteFiles/Site/separator.jpg' /> </li>\n");
    }
echo "</ul>\n";

mysql_free_result($rsMenu);
mysql\u-select\u-db($database\u-db\u-connection,$db\u-connection);
$query\rsMenu=“从菜单中选择*,其中在线=1按职位ASC排序”;
$rsMenu=mysql\u query($query\rsMenu,$db\u connection)或die(mysql\u error());
echo“\n”;
mysql_free_结果($rsMenu);

感谢

最简单的解决方案是在最后一次迭代或第一次迭代中使用特殊情况。第一个通常更简单:在循环外部,在循环内部设置$first=true:if(!$first){print'separator';}。

简单的解决方案是在最后一次迭代或第一次迭代中设置特殊情况。第一个通常更简单:在循环外部设置$first=true,在循环内部设置:if(!$first){print'separator';}。

$count=0;
$count = 0;
$dbRows = mysql_num_rows($rsMenu);
while($row_rsMenu = mysql_fetch_assoc($rsMenu)) {
    $count++;
    echo ("   <li><a href=\"../" . $row_rsMenu['menuURL'] . "\">" . $row_rsMenu['menuName'];
    if($count < $dbRows)
      echo ("</a> <img src='SiteFiles/Site/separator.jpg' /> </li>\n");
    }
$dbRows=mysql\u num\u rows($rsMenu); 而($row\rsMenu=mysql\u fetch\u assoc($rsMenu)){ $count++; echo(“
  • ”$row\rsMenu['menuName'”; 如果($count<$dbRows) 回声(“
  • \n”); }
    $count=0;
    $dbRows=mysql\u num\u rows($rsMenu);
    而($row\rsMenu=mysql\u fetch\u assoc($rsMenu)){
    $count++;
    echo(“
  • ”$row\rsMenu['menuName'”; 如果($count<$dbRows) 回声(“
  • \n”); }
    您可以使用mysql_num_rows()从结果集中获取行数,并根据结果构建一些逻辑。

    您可以使用mysql_num_rows()从结果集中获取行数,并根据结果构建一些逻辑。

    还有一个答案:

    for ($i = 1; $i <= mysql_num_rows($rsMenu); $i++) {
    
      $row_rsMenu = mysql_fetch_assoc($rsMenu);
      // do something;
    
      if ($i == mysql_num_rows($rsMenu) - 1) {
        // this is the last element, do something;
      }
    
    }
    
    对于($i=1;$i另一个答案:

    for ($i = 1; $i <= mysql_num_rows($rsMenu); $i++) {
    
      $row_rsMenu = mysql_fetch_assoc($rsMenu);
      // do something;
    
      if ($i == mysql_num_rows($rsMenu) - 1) {
        // this is the last element, do something;
      }
    
    }
    

    对于($i=1;$i您还可以构建一个数组,并在打印时使用内爆。这还可以更好地将数据库模型与视图分离

    mysql_select_db($database_db_connection, $db_connection);
    $query_rsMenu = "SELECT * FROM menu WHERE online = 1 ORDER BY position ASC";
    $rsMenu = mysql_query($query_rsMenu, $db_connection) or die(mysql_error());
    
    $array = array();
    while($row_rsMenu = mysql_fetch_assoc($rsMenu)) {
        $array[] = "<li><a href=\"../" . $row_rsMenu['menuURL'] . "\">" . $row_rsMenu['menuName'] . "</a></li>\n";
    }
    
    mysql_free_result($rsMenu);
    
    echo "<ul class='MenuBarVertical'>\n";
    echo implode(' <img src="SiteFiles/Site/separator.jpg" /> ', $array);
    echo "</ul>\n";
    
    mysql\u-select\u-db($database\u-db\u-connection,$db\u-connection);
    $query\rsMenu=“从菜单中选择*,其中在线=1按职位ASC排序”;
    $rsMenu=mysql\u query($query\rsMenu,$db\u connection)或die(mysql\u error());
    $array=array();
    而($row\rsMenu=mysql\u fetch\u assoc($rsMenu)){
    $array[]=“li>\n”;
    }
    mysql_free_结果($rsMenu);
    echo“\n”;
    

    当然,标记会在li之间结束,而不是在li内部结束,但是由于您将li内联,因此我认为它会工作。

    您还可以构建一个数组,并在打印时使用内爆。这也会更好地将数据库模型与视图分离

    mysql_select_db($database_db_connection, $db_connection);
    $query_rsMenu = "SELECT * FROM menu WHERE online = 1 ORDER BY position ASC";
    $rsMenu = mysql_query($query_rsMenu, $db_connection) or die(mysql_error());
    
    $array = array();
    while($row_rsMenu = mysql_fetch_assoc($rsMenu)) {
        $array[] = "<li><a href=\"../" . $row_rsMenu['menuURL'] . "\">" . $row_rsMenu['menuName'] . "</a></li>\n";
    }
    
    mysql_free_result($rsMenu);
    
    echo "<ul class='MenuBarVertical'>\n";
    echo implode(' <img src="SiteFiles/Site/separator.jpg" /> ', $array);
    echo "</ul>\n";
    
    mysql\u-select\u-db($database\u-db\u-connection,$db\u-connection);
    $query\rsMenu=“从菜单中选择*,其中在线=1按职位ASC排序”;
    $rsMenu=mysql\u query($query\rsMenu,$db\u connection)或die(mysql\u error());
    $array=array();
    而($row\rsMenu=mysql\u fetch\u assoc($rsMenu)){
    $array[]=“li>\n”;
    }
    mysql_free_结果($rsMenu);
    echo“\n”;
    

    当然,标记会在li之间结束,而不是在li内部结束,但是由于您将li内联,因此我认为它会起作用。

    我认为这是最优雅的方式。我认为这是最优雅的方式。现在您在每个迭代中请求行数,这只是浪费。现在您在每个迭代中请求行数,这就是太浪费了。谢谢……这就是我要找的!谢谢……这就是我要找的!