你似乎在正确的轨道上,但有一些事情混淆了。
菜单
首先,在制作要使用的菜单时unordered list
,然后使用 CSS 对其进行样式设置。一个基本的例子是:
<ul class="menu">
<li><a href="test">Test</a></li>
<li><a href="test2">Test 2</a></li>
<li><a href="test3">Test 3</a></li>
</ul>
然后使用以下 CSS 对其进行样式设置
ul.menu, ul.menu * {
list-style: none;
padding: 0;
margin: 0;
}
ul.menu {
width: 100%;
height: 20px;
background: #ccc;
padding: 5px 0; /* Add padding top and bottom */
}
ul.menu > li {
height: 20px;
line-height: 20px;
float: left;
}
/* Make a tag fill the entire LI so users can click
anywhere, not just on the text. */
ul.menu > li > a {
display: block;
padding: 0 10px; /* Add padding between items */
color: #000;
text-decoration: none;
}
ul.menu > li > a:hover, ul.menu > li > a:active {
background: #000;
color: #FFF;
}
/* Add divider between items, except last item (Does not work with earlier versions of IE) */
ul.menu > li:not(:last-child) {
border-right: 1px solid #000;
}
PHP 循环
首先是一个注释。您正在使用mysql
,即depreciated
。这意味着在某个 PHP 版本中,它很快将不再可用。很多人建议你学习PDO。就我个人而言,我更喜欢MySQLi而不是准备好的语句,但这只是我的偏好。两者都可以,但学习其中之一。
现在为您的循环。您似乎在循环中检查 mysql 查询的结果,这是错误的。我在上面猜测您有一个查询,它将其结果加载到 $subArr 中。mysql_num_rows
在将它们加载到 $subArr 之前,您需要调用它。
除了将循环应用到上面的列表之外,循环本身就很好。您的最终代码应如下所示。请注意,我在示例中使用了 MySQLi,我建议您也这样做,尽管如果您愿意,将其转换为 MySQL 应该不会太难。
<?php
$subArr = array();
$query = "SELECT something FROM somewhere";
$result = $mysql->query($query);
if($result->num_rows) {
while($row = $result->fetch_assoc()) { //I personally prefer fetch_assoc over the others, but fetch_row or fetch_array are both fine here too.
$subArr = $row;
}
}
//Lets output the menu
$resultString .= '<ul class="menu">';
foreach($subArr as $sub => $result) {
$resultString .= '<li><a href="' . $result['url'] . '">' . $result['name'] . '</a></li>'
}
$resultString = '</ul>';
最后一点要注意,您不需要cursor: pointer
在 a 标签上放置 a,默认情况下它具有该样式。
我希望这可以为您解决一些问题。