Вы, кажется, находитесь на правильном пути, но некоторые вещи перепутаны.
Меню
Во-первых, при создании меню, которое вы хотите использовать unordered list
, то стиль его с помощью CSS. basic example of this является:
<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 Loop
Во-первых запиской. Вы используете 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
на теге, то есть тот стиль по умолчанию.
Надеюсь, вам удастся прояснить некоторые вещи для вас.
вы должны включить результат 'print_r ($ subArr)' мы не знаем структуру вашего массива. – Robert