如何在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”;
而($row\rsMenu=mysql\u fetch\u assoc($rsMenu)){
回声(“\n”);
}
回声“
\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”;
回波内爆(“”,$array);
回声“
\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”;
回波内爆(“”,$array);
回声“
\n”;
当然,标记会在li之间结束,而不是在li内部结束,但是由于您将li内联,因此我认为它会起作用。我认为这是最优雅的方式。我认为这是最优雅的方式。现在您在每个迭代中请求行数,这只是浪费。现在您在每个迭代中请求行数,这就是太浪费了。谢谢……这就是我要找的!谢谢……这就是我要找的!