ну например вот так
// первый цикл
do {
print '<div>
// Второй цикл внутри цикла
do {
}
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
Блокноты
Журналы
и т.п.
Оргтехника
картриджи
краски
принтеры
Мебель офисная
столы
стулья
и т.п.
так вот я ввывел из базы данных одним запросом все это
попробую объяснить так
Есть навигация сайта с "категориями товара" и с "под категориями"
пример
Бумажное изделие
Бумага А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']
$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', '');
--
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 />";
И покажи результат и код сюда
echo menu['title']."<br />".menu['title2']."<br />";
И покажи результат и код сюда
Спустя 4 минуты, 34 секунды (4.01.2011 - 22:59) Gigabit написал(а):
такс вот теперь все вывел как ты сказал без стилей
получилось куча
Бумажное изделиеБумага "Снегурочка" А4Бумага "Svetocopy" А4вввввииииииииРучки, карандаши, МаркерыРучкиКниги, Журналы, БлокнотыКнига учета
вот по этому коду
получилось куча
Бумажное изделиеБумага "Снегурочка" А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
ииииииииРучки, карандаши, Маркеры
Ручки
Книги, Журналы, Блокноты
Книга учета
вот результат
Бумажное изделие
Бумага "Снегурочка" А4
Бумага "Svetocopy" А4
ииииииииРучки, карандаши, Маркеры
Ручки
Книги, Журналы, Блокноты
Книга учета
Спустя 19 минут, 51 секунда (4.01.2011 - 23:24) inpost написал(а):
Gigabit
И? Всё правильно вывелось, в том порядке, который тебе надо, разве нет?
И? Всё правильно вывелось, в том порядке, который тебе надо, разве нет?
Спустя 4 минуты, 6 секунд (4.01.2011 - 23:28) inpost написал(а):
У тебя всего 4 товара, они и вывелись в правильном порядке + их категори.
Бумажное изделие
- - Бумага "Снегурочка" А4
- - Бумага "Svetocopy" А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">
Тебе принципиально через 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 ?
А зачем? Мы его идеально сократили, далее просто логику понять и применить правильное оформление! Практикуйся, я в итоге составил. Вид в итоге должен получиться:
Вот и всё, просто правильно расставляешь. Выставил -проверил код, криво? Опять поменял. Проверяешь так: ВИД=>ИСТОЧНИК (в ИЕ) ВИД-ИСХОДНЫЙ КОД СТРАНИЦЫ (в Мозилле)
А что тебе мешает для дивов применить стили: 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>
и теперь попробуй чисто для себя составить такую схему с таким скриптом, скрипт идеальный нет слов , спасибо за помощь! очень помог,! я что то новое узнал ))
и схема этого меню не такая как ты указал
<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 написал(а):
Точно. У нас есть ЦИКЛ, за пределами его делаем:
Описываю логарифм тела:
Мы получили обычное тело, остался последний БАГ, это первый элемент не должен иметь обычных правил, поэтому достаточно в начале скрипта сделать:
Вывод TITLE:
<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> составить... но тут не как не получается... А то что ты готовые решение не даешь это я поддерживанию, на готовом решение я не фига бы не понял, а тут хоть ход дела понимаю.....
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 без надлежащего оператора?

Спустя 1 минута, 56 секунд (5.01.2011 - 11:12) Gigabit написал(а):
типа
echo или print
? Спустя 19 минут, 6 секунд (5.01.2011 - 11:31) sixpoundeeer написал(а):
Ну да. Если мы находимся в <?php, то нужно придерживаться синтаксиса php и записи типа:
приведут к синтаксической ошибке, потому что php не знает что такое <li>TITLE<ul>. Инпост дал тебе всего лишь образец, по которому нужно действовать. Так что либо echo либо
Вот тут все доходчиво.
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 написал(а):
Тогда ладно

Спустя 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>, так как он и есть самое начало. Подправь теперь всё, что я расписал и обратно сюда =)
Сам же <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>';
Сам же <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>';
вторую строчку прописывать так же на этом месте?
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 написал(а):
хорошо смотри результат....
вот код:
вот результат этого кода!
то есть у нас выводится
<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>
вот код:
<?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>. В твоей схеме неправильный ХТМЛ код в целом. Правильный мы добились, хочешь неправильный - исправь по первому абзацу данного комментария.
Собственно зачем тебе пихать отдельные контейнеры? <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, я уже неделю думал как такое сделать с категориями и подкатегориями
