Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> правильно проставить закрывающий тег 
:(
    Опции темы
lumentek
Дата 13.7.2010, 04:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 19.11.2009

Репутация: нет
Всего: нет



Проблема в том что не знаю как определить что в этот момент нужно закрыть тег </dd>
Дело в том что sql-запрос стоит из нескольких JOIN'ов, тоесть я в одном запросе выбрал категории и подкатегории. Теперь чтобы правильно сделать вывод, придумал счетчик, но у меня не получается в нужный момент закрыть указанный тег (коментарий html в коде)
Код

<? 
    for($i = 0; $i < count($arr); $i++): 
    if($arr[$i][id] != $id): $auction_id = $arr[$i][id]; 
?> 
<dt><i><?=$arr[$i][data];?></i><b><?="{$arr[$i][cat_name]}";?></b></dt> 
<p><?=$nameCat;?></p> 
<p><?="{$arr[$i][desc]}";?></p> 

<dd> 
 <?endif;?> 
 <p><a href="/pages/<?="{$arr[$i][parent]}";?>/<?="{$arr[$i][path]}";?>"><?="{$arr[$i][name]}";?></a> 

<!-- проблема с правильным выводом этого тега --> 
</dd> 

<?endfor;?> 

PM MAIL   Вверх
Sanchezzz
Дата 13.7.2010, 07:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



преведите структуру массива print_r($arr)


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
skyboy
Дата 13.7.2010, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



оооох, сколько запутанного кода.
ну, почему не выбросить все то, что не имеет отношения к задаче? вот
Цитата(lumentek @  13.7.2010,  03:43 Найти цитируемый пост)
<p><?=$nameCat;?></p> 

влияет на парность/непарность тега <dd>?  smile 
Код

<? 
    for($i = 0; $i < count($arr); $i++): 
    if($arr[$i][id] != $id): $auction_id = $arr[$i][id]; 
?> 
<!-- ... -->
<dd> 
 <?endif;?> 
<!-- ...... --> 
</dd> 
<?endfor;?> 

а теперь вопрос: сколько раз раз выводится строка 6? столько раз, сколько выполняется условие $arr[$i][id] != $id(кстати, все-таки $id или $auction_id?)
ты открываешь тег по условию, а закрываешь безусловно в цикле. не мудрено, что у тебя рассинхронизация открывающих и закрывающих. Если в строке 6(моей версии твоего кода) должен быть разрыв списка при изменении поля $id в массиве, то выглядеть тогда должно вот так:
Код

<dd>
<? 
    $id = null;
    for($i = 0; $i < count($arr); $i++): 
    if(!is_null($id) && $arr[$i][id] != $id): $id = $arr[$i][id]; 
?> 
<!-- ... -->
</dd>
<dd> 
 <?endif;?> 
<!-- ...... --> 
<?endfor;?> 
</dd>

PM MAIL   Вверх
lumentek
Дата 13.7.2010, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 19.11.2009

Репутация: нет
Всего: нет



Получется оператор for нужно задействовать второй раз  внутри первого for или я что-то не допонимаю

p.s. ид и auction_id это одно и тоже) прост опереименовать забыл))
PM MAIL   Вверх
skyboy
Дата 13.7.2010, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(lumentek @  13.7.2010,  10:40 Найти цитируемый пост)
Получется оператор for нужно задействовать второй раз  внутри первого for 

если мой вариант не подходит(когда id очередного элемента отличается от id предыдущего элемента, начинаем новый список <dd>), тогда объясняй логику формирования тегов.
простейший вариант: приводишь массив $arr и соответствующую ему верстку, которую ты хочешь получить в итоге.
а то эти предположения "получается, ... задействовать во второй раз ... внутри первого ..." создают впечатление гадания.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.