|
|
|
| Есть рекурсивная функция, вызывающая из БД древовидное меню:
<?php
$db_link = mysql_connect("localhost", "root", "");
if (!$db_link) {
die("Could not connect: " . mysql_error());
}
mysql_select_db("kupivufe") or die("Could not select database");
function tree($pid, $lvl){
$query = mysql_query("SELECT * FROM menu WHERE pid = '$pid'") or die(mysql_error());
while($categ = mysql_fetch_object($query)){
$lvl++;
echo $categ->title;
echo "<br>\n";
tree($categ->id, $lvl--);
}
}
tree(0, 0);
mysql_close($db_link);
?>
|
Как правильно расставить <ul><li></li></ul> ?
Чтобы получилось
1. Раздел
1.1 Подраздел
1.1.1 Товар
1.1.2 Товар
1.2 Подраздел
2. Раздел
и т.д... | |
|
|
|
|
|
|
|
для: kireyev
(24.06.2010 в 15:18)
| |
<?php
$db_link = mysql_connect("localhost", "root", "");
if (!$db_link) {
die("Could not connect: " . mysql_error());
}
mysql_select_db("kupivufe") or die("Could not select database");
function tree($pid, $lvl){
$query = mysql_query("SELECT * FROM menu WHERE pid = '$pid'") or die(mysql_error());
if($query && mysql_num_rows($query)) {
echo '<ul>'
while($categ = mysql_fetch_object($query)){
$lvl++;
echo "<li>{$categ->title}</li>";
tree($categ->id, $lvl--);
}
echo '</ul>'
}
}
tree(0, 0);
mysql_close($db_link);
?>
|
| |
|
|
|
|
|
|
|
для: sl1p
(24.06.2010 в 15:53)
| | А разве не так:
<ul>
<li>1. Раздел</li>
<ul>
<li>1.1 Подраздел</li>
<ul>
<li>1.1.1 Товар</li>
<li>1.1.2 Товар</li>
</ul>
<li>1.2 Подраздел</li>
</ul>
<li>2. Раздел</li>
</ul>
|
| |
|
|
|
|
|
|
|
для: sim5
(24.06.2010 в 16:02)
| | не логично:) | |
|
|
|
|
|
|
|
для: sl1p
(24.06.2010 в 16:38)
| | Да? Для меню значит логичнее одно вложение? | |
|
|
|
|
|
|
|
для: sim5
(24.06.2010 в 16:39)
| | а где же там одно вложение?:) | |
|
|
|
|
|
|
|
для: sl1p
(24.06.2010 в 16:40)
| | У вас его вообще не получится никакого. | |
|
|
|
|
|
|
|
для: sl1p
(24.06.2010 в 15:53)
| | Не там <li> закрыли. | |
|
|
|
|
|
|
|
для: Лена
(24.06.2010 в 16:44)
| | а точно)
<?php
$db_link = mysql_connect("localhost", "root", "");
if (!$db_link) {
die("Could not connect: " . mysql_error());
}
mysql_select_db("kupivufe") or die("Could not select database");
function tree($pid, $lvl){
$query = mysql_query("SELECT * FROM menu WHERE pid = '$pid'") or die(mysql_error());
if($query && mysql_num_rows($query)) {
echo '<ul>'
while($categ = mysql_fetch_object($query)){
$lvl++;
echo '<li>';
echo $categ->title;
tree($categ->id, $lvl--);
echo '</li>';
}
echo '</ul>'
}
}
tree(0, 0);
mysql_close($db_link);
?>
|
| |
|
|
|
|
|
|
|
для: sl1p
(24.06.2010 в 17:12)
| | Скажите, а как сделать, чтобы не было много обращений в БД?
Можно сделать одно обращение к БД? | |
|
|
|
|
|
|
|
для: kireyev
(24.06.2010 в 20:29)
| | нужно | |
|
|
|
|
|
|
|
для: Trianon
(24.06.2010 в 21:03)
| | можно подробнее, спасибо!! | |
|
|
|
|
|
|
|
для: kireyev
(24.06.2010 в 21:13)
| | и мне :) | |
|
|
|
|