[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Цикл в нцтри цикла, это реально?
Gigabit
Вопрос вот в чем Возможен ли в php цикле "while" или "do while" еще один цикл, то есть цикл в цикле?
ну например вот так


// первый цикл
do {

print '<div>
// Второй цикл внутри цикла
do {

print
}


while (условие);



</div> '
;


}

while (условие);




Может быть это тупость но хочется узнать, мне кое какую проблему решить надо, и там как раз такой вот цикл и к месту бы)



Спустя 4 минуты, 29 секунд (4.01.2011 - 20:47) waldicom написал(а):
можно сколько хочешь циклов вложенных (почти).
А что за проблема? Может её можно по другому решить?

Спустя 1 минута, 26 секунд (4.01.2011 - 20:48) Gigabit написал(а):
ша на схеме покажу погоди немного

Спустя 19 минут, 4 секунды (4.01.2011 - 21:07) Gigabit написал(а):
Короче картинку со схемой тут не добавить))
попробую объяснить так

Есть навигация сайта с "категориями товара" и с "под категориями"

пример

Бумажное изделие
Бумага А4
Блокноты
Журналы
и т.п.

Оргтехника
картриджи
краски
принтеры


Мебель офисная
столы
стулья
и т.п.


так вот я ввывел из базы данных одним запросом все это



// Функция левого меню сайта

function leftmenu ()

{
print '<ul class="menu">';

$query = mysql_query ("SELECT * FROM razdel LEFT JOIN podrazdel ON razdel.id = podrazdel.mcat");
$menu = mysql_fetch_array ($query);
// Выводи цикл
do

{
print ' <li><a href="">'.$menu['title'].'</a>
<ul class="acitem">
<li><a href="">'
.$menu['title2'].'</a></li>
</ul>
</li>'
;


}

while ($menu = mysql_fetch_array ($query));


}
print '</ul>';

Спустя 4 минуты, 5 секунд (4.01.2011 - 21:11) Gigabit написал(а):
$menu['title'] - название категорий сайта из таблицы razdel
$menu['title2'] - название под категории из таблицы podrazdel

так вот в цикле надо вывести вот так

$menu['title']
$menu['title2']
$menu['title2']
$menu['title2']

$menu['title']
$menu['title2']
$menu['title2']
$menu['title2']

Спустя 19 минут, 49 секунд (4.01.2011 - 21:31) waldicom написал(а):
Часто используют всего одну таблицу для категорий. Исходя из этого, можно сделать все одним запросом.
Если интересно, здесь на форуме были такие темы, поищи.

Спустя 2 минуты, 25 секунд (4.01.2011 - 21:33) Gigabit написал(а):
waldicom понимаешь в моем случаи нужно 2 таблицы... и мне очень нужна хоть какая то подсказка как это реализовать

Спустя 2 минуты, 55 секунд (4.01.2011 - 21:36) waldicom написал(а):
Цитата (Gigabit @ 4.01.2011 - 19:33)
waldicom понимаешь в моем случаи нужно 2 таблицы... и мне очень нужна хоть какая то подсказка как это реализовать

Не понимаю, зачем нужны две таблицы.
Но если очень надо, то в сначала выбираешь все главные категории, потом цикл по ним. А внутри этого цикла выбираешь подкатегории для текущей главной и еще один цикл.
Но это не красиво.

Спустя 7 минут, 4 секунды (4.01.2011 - 21:43) Gigabit написал(а):
что то вроде этого?





print '<ul class="menu">';

$query = mysql_query ("SELECT * FROM cat_razdelov LEFT JOIN cat_tovarov ON cat_razdelov.id = cat_tovarov.mcat");
$menu = mysql_fetch_array ($query);
if (isset ($_GET['id'])) {$id = $_GET['id']; }


do

{
print ' <li><a href="">'.$menu['title'].'</a>';

do
{
print '<ul class="acitem">
<li><a href="">'
.$menu['title2'].'</a></li>
</ul>
</li>'
;
}
while ($menu = mysql_fetch_array ($query));

}

while ($menu = mysql_fetch_array ($query));


}
print '</ul>';

Спустя 1 минута, 36 секунд (4.01.2011 - 21:45) inpost написал(а):
if(!empty(podrazdel.mcat))
выводим как подраздел,
else
выводим как раздел!


Ах да, там ещё сгруппировать надо по podrazdel.mcat

Спустя 2 минуты, 23 секунды (4.01.2011 - 21:47) Gigabit написал(а):
inpost если не трудно уточни насчет сгрупировать

Спустя 6 минут, 54 секунды (4.01.2011 - 21:54) inpost написал(а):
Покажи строение двух таблиц, я выведу тебе результат, попробуешь разобраться =)

Спустя 2 минуты, 40 секунд (4.01.2011 - 21:57) Gigabit написал(а):
-- Структура таблицы `cat_razdelov`
--

CREATE TABLE `cat_razdelov` (
`Id` int(11) NOT NULL auto_increment,
`title` varchar(255) default NULL,
PRIMARY KEY (`Id`),
KEY `Новый индекс` (`title`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7 ;

--
-- Дамп данных таблицы `cat_razdelov`
--

INSERT INTO `cat_razdelov` VALUES (1, 'Бумажное изделие');
INSERT INTO `cat_razdelov` VALUES (2, 'Папки,Архивы,Файлы');
INSERT INTO `cat_razdelov` VALUES (3, 'Ручки, карандаши, Маркеры');
INSERT INTO `cat_razdelov` VALUES (4, 'степлеры, дыроколы');
INSERT INTO `cat_razdelov` VALUES (6, 'Книги, Журналы, Блокноты');



вот вторая


-- Структура таблицы `cat_tovarov`
--

CREATE TABLE `cat_tovarov` (
`Id` int(11) NOT NULL auto_increment,
`title2` varchar(255) default NULL,
`mcat` varchar(255) default NULL,
`mcat_title` varchar(255) default NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=14 ;

--
-- Дамп данных таблицы `cat_tovarov`
--

INSERT INTO `cat_tovarov` VALUES (1, 'Ручки', '3', NULL);
INSERT INTO `cat_tovarov` VALUES (2, 'Бумага "Снегурочка" А4', '1', NULL);
INSERT INTO `cat_tovarov` VALUES (12, 'Книга учета', '6', NULL);
INSERT INTO `cat_tovarov` VALUES (13, 'Бумага "Svetocopy" А4', '1', '');

Спустя 5 минут, 16 секунд (4.01.2011 - 22:02) inpost написал(а):
$maintitle = '';
$query = mysql_query ("
SELECT a.`title`,b.`title2`,b.`mcat`,b.`mcat_title`
FROM `razdel` a
LEFT JOIN `podrazdel` b ON b.`mcat` = a.`id`
GROUP BY b.`id`
ORDER BY b.`mcat`
"
);
while($menu = mysql_fetch_assoc($query))
{
if($maintitle != $menu['title'])
{
$maintitle = $menu['title'];
=
Выводим раздел=
=
Выводим подраздел=
}
else
{
=Вывыдим подраздел=
}
}


Обновление: исправил №3 (между 2-3 только красота)

Спустя 29 минут, 36 секунд (4.01.2011 - 22:32) Gigabit написал(а):
он не выводит у меня в категории список всех под котегорий, а только 1 значение из второй таблицы, то есть цикла в под категорий нету, может в коде я что то не то сделал?






print '<ul class="menu">';
$maintitle = '';
$query = mysql_query ("SELECT a.`title`,b.`title2`,b.`mcat`,b.`mcat_title` FROM `razdel` a LEFT JOIN `podrazdel` b ON b.`mcat` = a.`id` GROUP BY b.`id` ORDER BY b.`mcat`");
$menu = mysql_fetch_array ($query);

while($menu = mysql_fetch_assoc($query))
{
if($maintitle != $menu['title'])
{
$maintitle = $menu['title'];

// вывод категорий
print ' <li><a href="">'.$menu['title'].'</a>';

// Вывод подкатегорий
print '<ul class="acitem">
<li><a href="">'
.$menu['title2'].'</a></li>
</ul>
</li>'
;
}
else
{
// Вывод подкатегорий
print '<ul class="acitem">
<li><a href="">'
.$menu['title2'].'</a></li>
</ul>
</li>'
;
}
}










Спустя 22 минуты, 49 секунд (4.01.2011 - 22:55) inpost написал(а):
Выведи без стилей просто,
echo menu['title']."<br />".menu['title2']."<br />";

И покажи результат и код сюда

Спустя 4 минуты, 34 секунды (4.01.2011 - 22:59) Gigabit написал(а):
такс вот теперь все вывел как ты сказал без стилей


получилось куча

Бумажное изделиеБумага "Снегурочка" А4Бумага "Svetocopy" А4вввввииииииииРучки, карандаши, МаркерыРучкиКниги, Журналы, БлокнотыКнига учета


вот по этому коду


print '<ul class="menu">';
$maintitle = '';
$query = mysql_query ("SELECT a.`title`,b.`title2`,b.`mcat`,b.`mcat_title` FROM `cat_razdelov` a LEFT JOIN `cat_tovarov` b ON b.`mcat` = a.`id` GROUP BY b.`id` ORDER BY b.`mcat`");
$menu = mysql_fetch_array ($query);

while($menu = mysql_fetch_assoc($query))
{
if($maintitle != $menu['title'])
{
$maintitle = $menu['title'];
echo $menu['title'];
echo $menu['title2'];
}
else
{
echo $menu['title2'];
}
}


Спустя 5 минут, 14 секунд (4.01.2011 - 23:04) Gigabit написал(а):
соррии )) забыл про тэг <br /> ))

вот результат

Бумажное изделие
Бумага "Снегурочка" А4

Бумага "Svetocopy" А4

ииииииииРучки, карандаши, Маркеры
Ручки
Книги, Журналы, Блокноты
Книга учета

Спустя 19 минут, 51 секунда (4.01.2011 - 23:24) inpost написал(а):
Gigabit
И? Всё правильно вывелось, в том порядке, который тебе надо, разве нет?

Спустя 4 минуты, 6 секунд (4.01.2011 - 23:28) inpost написал(а):
У тебя всего 4 товара, они и вывелись в правильном порядке + их категори.

Бумажное изделие
- - Бумага "Снегурочка" А4
- - Бумага "Svetocopy" А4

Ручки, карандаши, Маркеры
- - Ручки

Книги, Журналы, Блокноты
- - Книга учета

Спустя 50 секунд (4.01.2011 - 23:29) Gigabit написал(а):
да, нобез стилей, а со стилями не выводится ((

Спустя 5 минут, 29 секунд (4.01.2011 - 23:35) inpost написал(а):
Gigabit
Тебе принципиально через ul-li? Сделай на дивах через классы.
<div class="title">
<div class="title2">

Спустя 3 минуты, 38 секунд (4.01.2011 - 23:38) Gigabit написал(а):
там короче навигация "Аккордеон" ну типа гармошка, может ты встречался с таким, так вот там ul li..

Спустя 3 минуты, 12 секунд (4.01.2011 - 23:41) Gigabit написал(а):
а нельзя этот код который ты написал $menu['title2']; вывести через цикл какой нибудь ?

Спустя 3 минуты, 41 секунда (4.01.2011 - 23:45) inpost написал(а):
Ты логику UL-LI не можешь составить, а за тебя не буду, тут уже самому надо правильно расставить, поразмыслить.
А что тебе мешает для дивов применить стили: padding-left ?

А зачем? Мы его идеально сократили, далее просто логику понять и применить правильное оформление! Практикуйся, я в итоге составил. Вид в итоге должен получиться:
<ul>
<li>
TITLE</li>
<ul>
<li>
RAZDEL</li>
<li>
RAZDEL</li>
</ul>
<li>
TITLE</li>
<ul>
<li>
RAZDEL</li>
<li>
RAZDEL</li>
</ul>
</ul>


Вот и всё, просто правильно расставляешь. Выставил -проверил код, криво? Опять поменял. Проверяешь так: ВИД=>ИСТОЧНИК (в ИЕ) ВИД-ИСХОДНЫЙ КОД СТРАНИЦЫ (в Мозилле)

Спустя 1 час, 23 минуты, 1 секунда (5.01.2011 - 01:08) Gigabit написал(а):
Inpost а ты сам попробуй логику составь с этим скриптом, там не как не составить не выровнять

и схема этого меню не такая как ты указал
<ul>
<li>TITLE</li>
<ul>
<li>RAZDEL</li>
<li>RAZDEL</li>
</ul>
<li>TITLE</li>
<ul>
<li>RAZDEL</li>
<li>RAZDEL</li>
</ul>
</ul>


а вот такая


<ul>
<li>TITLE
<ul>
<li>RAZDEL</li>
<li>RAZDEL</li>
</ul></li>
<li>TITLE
<ul>
<li>RAZDEL</li>
<li>RAZDEL</li>
</ul> </li>
</ul>


и теперь попробуй чисто для себя составить такую схему с таким скриптом, скрипт идеальный нет слов , спасибо за помощь! очень помог,! я что то новое узнал ))

Спустя 23 минуты, 42 секунды (5.01.2011 - 01:32) inpost написал(а):
Точно. У нас есть ЦИКЛ, за пределами его делаем:
<ul>
ТУТ ТЕЛО (то есть сам цикл).
</
ul></li></ul>


Описываю логарифм тела:

</ul></li><li>TITLE<ul>

<
li>TITLE2</li>


Мы получили обычное тело, остался последний БАГ, это первый элемент не должен иметь обычных правил, поэтому достаточно в начале скрипта сделать:
$temp = 0;


Вывод TITLE:
if($temp == 0)
{
++$temp;
<
li>TITLE<ul>
}
else
{
</ul></li><li>TITLE<ul>
}

Спустя 11 минут, 18 секунд (5.01.2011 - 01:43) inpost написал(а):
Gigabit
Составил, и вместо того, чтобы просто дать готовый, хочу помочь тебе, и поэтому потратил чуточку больше времени, но попытался объяснить сам механизм такой логики. Пробуй, учись, познавай!

А если есть желание, результат рабочий выстави сюда, я оценю =)

Спустя 9 часов, 18 минут, 16 секунд (5.01.2011 - 11:01) Gigabit написал(а):
ты издеваешься?) все что ты мне писал до сеих пор я понимал и разбирал но вот
if($temp == 0)
{
++$temp;
<
li>TITLE<ul>
}
else
{
</ul></li><li>TITLE<ul>
}
этого я не как понять не могу , сам смысл этого


у нас должен выйти такой вот расклад

<ul>
<!-----------Все что дальше в цикле---------->
<li> Катеория
<ul><li>Под категория </li></ul>
</li>


<!-----------цикл заканчивается---------->
</ul>



но вот даже тем механизмом который ты расписал ничего не выходит (((
if($temp == 0)
{
++$temp;
<li>TITLE<ul>
}
else
{
</ul></li><li>TITLE<ul>
}


не отрицаю может я и нуб, но не до такой степени что бы не смог сам логику <ul><li> составить... но тут не как не получается... А то что ты готовые решение не даешь это я поддерживанию, на готовом решение я не фига бы не понял, а тут хоть ход дела понимаю.....

Спустя 8 минут, 59 секунд (5.01.2011 - 11:10) sixpoundeeer написал(а):
Цитата
if($temp == 0)
{
++$temp;
<li>TITLE<ul>
}
else
{
</ul></li><li>TITLE<ul>
}

Надеюсь, ты не пытаешься вывести html в php без надлежащего оператора? smile.gif

Спустя 1 минута, 56 секунд (5.01.2011 - 11:12) Gigabit написал(а):
типа
echo или print
?

Спустя 19 минут, 6 секунд (5.01.2011 - 11:31) sixpoundeeer написал(а):
Ну да. Если мы находимся в <?php, то нужно придерживаться синтаксиса php и записи типа:
if($temp == 0)
{
++$temp;
<
li>TITLE<ul>
}

приведут к синтаксической ошибке, потому что php не знает что такое <li>TITLE<ul>. Инпост дал тебе всего лишь образец, по которому нужно действовать. Так что либо echo либо
<?php
if($temp == 0)
{
++$temp;
?>
<li>TITLE<ul>
<?php
}

Вот тут все доходчиво.

Спустя 1 минута, 29 секунд (5.01.2011 - 11:33) Gigabit написал(а):
так я использую print и echo, ч этим не проблема... это самое элементарное )

Спустя 2 минуты, 35 секунд (5.01.2011 - 11:36) sixpoundeeer написал(а):
Тогда ладно smile.gif

Спустя 10 минут, 21 секунда (5.01.2011 - 11:46) Gigabit написал(а):
inpost я правильно расписал твой скрипт?

while($menu = mysql_fetch_assoc($query))
{
if($maintitle != $menu['title'])
{
$maintitle = $menu['title'];
if($temp == 0)
{
++$temp;
echo ' <li><a href="">'.$menu['title'].'</a><ul>';
echo '<li><a href="">'.$menu['title2'].'</a></li></ul>';
}

else
{
echo '</ul></li><li><a href="">'.$menu['title'].'</a><ul>';
}
}

else
{
echo '</li><ul><li><a href="">'.$menu['title2'].'</a></li></ul>';
}

}

print '</ul></li></ul>';
}

Спустя 4 часа, 45 минут, 38 секунд (5.01.2011 - 16:32) inpost написал(а):
Нет! Первая ошибка - это TITLE2 будет выводиться во всех случаях, независимо от того, является ли temp =0 , или нет! Эта проверка лишь для того, чтобы выделить ПЕРВЫЙ(!) TITLE .

Сам же <li>TITLE2</li> ТОЛЬКО ТАК, никак по другому! Ты применяешь стили для разделение только основного, а дочерний элемент, он же TITLE2 остаётся неизменным.

В самом начале не хватает: <ul>, так как он и есть самое начало. Подправь теперь всё, что я расписал и обратно сюда =)

Спустя 1 час, 1 минута, 21 секунда (5.01.2011 - 17:33) Gigabit написал(а):
ВОТ КОД:

print '<ul class="menu">';
$maintitle = '';
$query = mysql_query ("SELECT a.`title`,b.`title2`,b.`mcat`,b.`mcat_title` FROM `cat_razdelov` a LEFT JOIN `cat_tovarov` b ON b.`mcat` = a.`id` GROUP BY b.`id` ORDER BY b.`mcat`");
$menu = mysql_fetch_array ($query);

while($menu = mysql_fetch_assoc($query))
{
if($maintitle != $menu['title'])
{
$maintitle = $menu['title'];
if($temp == 0)
{
++$temp;
echo ' <li><a href="">'.$menu['title'].'</a><ul>';
}

else
{
echo '</ul></li><li><a href="">'.$menu['title'].'</a><ul>';
}
echo '<li><a href="">'.$menu['title2'].'</a></li>';
}
else
{
echo '<ul><li><a href="">'.$menu['title2'].'</a></li></ul>';
}

}

print '</li></ul>';
}




я по разному попытался его переделать но вот результат:



<ul>

<li>
Бумажное изделие
<ul><li>Бумага "Снегурочка" А4</li>
<ul><li>
Бумага "Svetocopy" А4</li></ul>
<ul><li>
ввввв </li></ul>
<ul><li>
ииииииии </li></ul></ul>
</li>

<li>
Ручки, карандаши, Маркеры
<ul><li>Ручки</li></ul>
</li>
<li>
Книги, Журналы, Блокноты
<ul><li>Книга учета</li>
</li>


</ul>




там всего алость не хватает... а вот что не то опять?

Спустя 1 час, 20 минут, 38 секунд (5.01.2011 - 18:54) inpost написал(а):
Читаем:
Сам же <li>TITLE2</li> ТОЛЬКО ТАК, никак по другому! Ты применяешь стили для разделение только основного, а дочерний элемент, он же TITLE2 остаётся неизменным.

Смотрим код:
echo '<li><a href="">'.$menu['title2'].'</a></li>';
echo '<ul><li><a href="">'.$menu['title2'].'</a></li></ul>';

Ещё раз смотрим начала сообщения: TITLE2 всегда по логике один и тот же. А сам понять не можешь, откуда идут лишние <ul> ??? Я то помогу, но куда тебе с такой внимательностью к ответственному подходу? Тебе неплохо было бы немного заняться собой, следить внимательно над своими действиями и пытаться понять, откуда та или иная часть попадает на экран, а не писать так.

Я писал, что в конце надо: print '</ul></li></ul>';
А ты пишешь: print '</li></ul>';

Спустя 34 минуты, 37 секунд (5.01.2011 - 19:28) Gigabit написал(а):
у меня не лишнее <ul> а наоборот не хватает его)) посмотри рядом со словом Бумага "Снегурочка " А4 там в конце должно быть </ul> а у меня его нет))

Спустя 4 минуты, 45 секунд (5.01.2011 - 19:33) Gigabit написал(а):
а ты сделал логику ul-li ? получилось?

Спустя 23 минуты, 40 секунд (5.01.2011 - 19:57) inpost написал(а):
А ті сделай, как я написал, и выстави код, сам увидишь разницу!

Спустя 2 минуты, 30 секунд (5.01.2011 - 19:59) Gigabit написал(а):
хорошо... один момент уточню
echo '<li><a href="">'.$menu['title2'].'</a></li>';
echo '<ul><li><a href="">'.$menu['title2'].'</a></li></ul>';

вторую строчку прописывать так же на этом месте?
  else
{
echo '<ul><li><a href="">'.$menu['title2'].'</a></li></ul>'; //вот тут прописать ?
}

}

print '</ul></li></ul>';
}

Спустя 4 минуты, 29 секунд (5.01.2011 - 20:04) Gigabit написал(а):
код такой должен быть я правильно понял?



print '<ul class="menu">';
$maintitle = '';
$query = mysql_query ("SELECT a.`title`,b.`title2`,b.`mcat`,b.`mcat_title` FROM `cat_razdelov` a LEFT JOIN `cat_tovarov` b ON b.`mcat` = a.`id` GROUP BY b.`id` ORDER BY b.`mcat`");
$menu = mysql_fetch_array ($query);

while($menu = mysql_fetch_assoc($query))
{
if($maintitle != $menu['title'])
{
$maintitle = $menu['title'];
if($temp == 0)
{
++$temp;
echo ' <li><a href="">'.$menu['title'].'</a><ul>';
}

else
{
echo '</ul></li><li><a href="">'.$menu['title'].'</a><ul>';
}
echo '<li><a href="">.$menu['title2'].</a></li>';
}
else
{
echo '<ul><li><a href="">'.$menu['title2'].'</a></li></ul>';
}

}

print '</ul></li></ul>';
}

Спустя 30 минут, 4 секунды (5.01.2011 - 20:34) inpost написал(а):
<li>TITLE2</li> - только так выводишь титулку второго, я же уже показал. А ты снова по старому.

Спустя 7 минут, 54 секунды (5.01.2011 - 20:41) Gigabit написал(а):
хорошо смотри результат....



вот код:

<?php

// Функция левого меню сайта

function leftmenu ()

{
print '<ul class="menu">';
$maintitle = '';
$query = mysql_query ("SELECT a.`title`,b.`title2`,b.`mcat`,b.`mcat_title` FROM `cat_razdelov` a LEFT JOIN `cat_tovarov` b ON b.`mcat` = a.`id` GROUP BY b.`id` ORDER BY b.`mcat`");
$menu = mysql_fetch_array ($query);

while($menu = mysql_fetch_assoc($query))
{
if($maintitle != $menu['title'])
{
$maintitle = $menu['title'];
if($temp == 0)
{
++$temp;
echo ' <li><a href="">'.$menu['title'].'</a><ul>';
}

else
{
echo '</ul></li><li><a href="">'.$menu['title'].'</a><ul>';
}
echo '<li><a href="">'.$menu['title2'].'</a></li>';
}
else
{
echo '<li><a href="">'.$menu['title2'].'</a></li>';
}

}

print '</ul></li></ul>';
}


?>



вот результат этого кода!


<ul class="menu">	


<li><a
href="">Бумажное изделие</a>
<ul><li><a
href="">Бумага "Снегурочка" А4</a></li>
<li><a
href="">Бумага "Svetocopy" А4</a></li>
<li><a
href="">ввввв</a></li>
<li><a
href="">ииииииии</a></li>
</ul>

</li>




<li><a
href="">Ручки, карандаши, Маркеры</a>
<ul><li><a
href="">Ручки</a></li></ul>
</li>




<li><a
href="">Книги, Журналы, Блокноты</a>
<ul><li><a
href="">Книга учета</a></li></ul>
</li>

</ul>



то есть у нас выводится

<ul>
<li>title
<ul><li>title2</li>
<li>title2</li>
<li>title2</li>
<li>title2</li>
</ul>
<li>
<ul>

а я ведь говорил что мне надо вот такую схему:
<ul>
<li>title
<ul><li>title2</li></ul>
<ul> <li>title2</li></ul>
<ul> <li>title2</li></ul>
<ul> <li>title2</li></ul>
<li>
<ul>


Спустя 7 минут, 48 секунд (5.01.2011 - 20:49) inpost написал(а):
В чём беда? В конце убери </ul> лишний , и в TITLE2 добавь в начале и в конце <ul></ul>... Или ты понятия не имеешь, что мы сейчас выставляем? И из обычного TITLE убери ненужные <ul></ul>...

Собственно зачем тебе пихать отдельные контейнеры? <UL - это контейнер для объединения <LI>. В твоей схеме неправильный ХТМЛ код в целом. Правильный мы добились, хочешь неправильный - исправь по первому абзацу данного комментария.

Спустя 3 минуты, 45 секунд (5.01.2011 - 20:53) Gigabit написал(а):
уже пробывал... не катит

Спустя 46 секунд (5.01.2011 - 20:54) inpost написал(а):
Показывай, как ты делал, как убирал то, что я описал.

Спустя 3 минуты, 6 секунд (5.01.2011 - 20:57) Invis1ble написал(а):
Блин, топик вроде про циклы, а вы тут уже на пару страниц наоффтопили про верстку =)

Спустя 6 минут, 47 секунд (5.01.2011 - 21:04) inpost написал(а):
Invis1ble
Я объяснил, а он обычную логику вывода понять не может, и взял меня на панты, типо я не могу... Меня задолбало, пытаюсь показать человеку, где что выводится, а ему лишь бы халтурку... на, держи:
$temp = 0;
echo '<ul>';
while($menu = mysql_fetch_assoc($query))
{
if($maintitle != $menu['title'])
{
$maintitle = $menu['title'];
if($temp == 0)
{
++$temp;
echo '<li><a href="">'.$menu['title'].'</a>';
}
else
{
echo '</li><li><a href="">'.$menu['title'].'</a>';
}
echo '<ul><li><a href="">'.$menu['title2'].'</a></li></ul>';
}
else
{
echo '<ul><li><a href="">'.$menu['title2'].'</a></li></ul>';
}
}

echo '</li></ul>';

Спустя 4 минуты, 11 секунд (5.01.2011 - 21:08) Invis1ble написал(а):
inpost
Цитата
Я объяснил, а он обычную логику вывода понять не может

это я понял еще постов эдак 10-15 назад =) просто уведомления на мыло приходят, надо бы отписаться мне...

Спустя 6 минут, 43 секунды (5.01.2011 - 21:15) inpost написал(а):
Тебе бы просто ввести и понять, что где и на каком месте находится, а не пытаться добиться результата! Пока сам не поймешь, завтра с этим же вопросом сюда вернёшься
$temp = 0;
echo 'AAA';
while($menu = mysql_fetch_assoc($query))
{
if($maintitle != $menu['title'])
{
$maintitle = $menu['title'];
if($temp == 0)
{
++$temp;
echo 'BBB';
}
else
{
echo 'CCC';
}
echo 'DDD';
}
else
{
echo 'EEE';
}
}

echo 'FFF';

Спустя 19 минут, 20 секунд (5.01.2011 - 21:34) Gigabit написал(а):
блин а все так легко оказалось, не мог понять надо было на самом деле сначала узнать где что выводит а потом думать как вывести... ладно сорри за мозгое...во и спасибо огромное за код и за урок!)

Спустя 19 дней, 19 часов, 54 минуты, 28 секунд (25.01.2011 - 17:28) prodigy написал(а):
Спасибо, inpost, я уже неделю думал как такое сделать с категориями и подкатегориями cool.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.