Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Дублирование при выводе в дерево
А что касаемо вывода в первом цикле получаете массив $style и в первом цикле определяется же индекс $i и следовательно элемент в массиве $a_tree[$id_par_service], далее через while (новый цикл) последовательно перебираете значение $usl_check при этом значение $a_tree[$id_par_service][$i] и $style не меняется, следовательно, происходит вывод одного и того же до конца цикла while, при этом даже не закрывается у вас все в результате тегом </li>
quinlena
Отправлено: 28 Августа, 2012 - 10:25:36
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012 Откуда: Казахстан
Помог: 0 раз(а)
[quote=Bartezz][/quote]
Если я убираю while, то значение checked выставляется только у одного элемента, а у остальных нет.
Bartezz
Отправлено: 28 Августа, 2012 - 10:45:54
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2010
Помог: 1 раз(а)
Код конечно кодом, но совершенно непонятно какая цель преследуется и что входит в выборку $usl_check, я так понимаю что там не один элемент, а похоже 2 раз строки дублировались, а если два тогда предполагается вывод 2х чекбоксов один с checked другой без? Или просто не хватает в запросе LIMIT 1?
quinlena
Отправлено: 28 Августа, 2012 - 10:46:17
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012 Откуда: Казахстан
Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2010
Помог: 1 раз(а)
quinlena пишет:
Даже если закрыть цикл после li То все равно повторяются записи
разумеется суть то не поменялась, да и выборка $usl_check содержит, по-видимому, 2 элемента
quinlena
Отправлено: 28 Августа, 2012 - 10:48:57
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012 Откуда: Казахстан
Помог: 0 раз(а)
Bartezz пишет:
Код конечно кодом, но совершенно непонятно какая цель преследуется и что входит в выборку $usl_check, я так понимаю что там не один элемент, а похоже 2 раз строки дублировались, а если два тогда предполагается вывод 2х чекбоксов один с checked другой без? Или просто не хватает в запросе LIMIT 1?
Смысл таков, что на страницу выводится договор, делается из базы выборка этого договора, потом лезу в другую таблицу, где id договора совпадает и беру оттуда id услуг, которые есть в договоре, потом вывожу дерево всех имеющихся услуг, но так, чтоб которые есть в договоре, были отмечены. Вот, смысл таков (Добавление)
quinlena пишет:
Bartezz пишет:
Код конечно кодом, но совершенно непонятно какая цель преследуется и что входит в выборку $usl_check, я так понимаю что там не один элемент, а похоже 2 раз строки дублировались, а если два тогда предполагается вывод 2х чекбоксов один с checked другой без? Или просто не хватает в запросе LIMIT 1?
Смысл таков, что на страницу выводится договор, делается из базы выборка этого договора, потом лезу в другую таблицу, где id договора совпадает и беру оттуда id услуг, которые есть в договоре, потом вывожу дерево всех имеющихся услуг, но так, чтоб которые есть в договоре, были отмечены. Вот, смысл таков
Надеюсь понятно объяснила, в идеале конечно нужно, чтоб показывался путь, до услуг, которые есть...
Bartezz
Отправлено: 28 Августа, 2012 - 11:01:49
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2010
Тогда повторений нет, но выбирается только первое значение
Bartezz
Отправлено: 28 Августа, 2012 - 11:06:28
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2010
Помог: 1 раз(а)
вам надо разобраться с $a_tree[$id_par_service][$i]['id_service'] и $a_tree[$id_par_service][$i]['name_service'] чтоб их значения соотвественно менялись при изменении $usl_checki
quinlena
Отправлено: 28 Августа, 2012 - 11:08:12
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012 Откуда: Казахстан
Помог: 0 раз(а)
Bartezz пишет:
вам надо разобраться с $a_tree[$id_par_service][$i]['id_service'] и $a_tree[$id_par_service][$i]['name_service'] чтоб их значения соотвественно менялись при изменении $usl_checki
Мне не нужно их менять, просто нужно checked расставить...
Рекомендациями из первого поста воспользовалась, ничего не изменилось
Bartezz
Отправлено: 28 Августа, 2012 - 11:13:15
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2010
Помог: 1 раз(а)
quinlena пишет:
Мне не нужно их менять, просто нужно checked расставить...
Именно это у вас и происходит и дублируются строки (потому как услуги не меняются проходя по циклу while), а лишь меняется то checked то не "checked"
quinlena
Отправлено: 28 Августа, 2012 - 11:18:35
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012 Откуда: Казахстан
Помог: 0 раз(а)
Bartezz пишет:
quinlena пишет:
Мне не нужно их менять, просто нужно checked расставить...
Именно это у вас и происходит и дублируются строки (потому как услуги не меняются проходя по циклу while), а лишь меняется то checked то не "checked"
Посоветуйте, что можно сделать?
Bartezz
Отправлено: 28 Августа, 2012 - 11:23:36
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2010
Помог: 1 раз(а)
Посмотрите сообщение мое от "28 Августа, 2012 - 12:01:49" если я правильно понял структуру массива $a_tree, то это должно помочь. В таблице `service_cl` есть же столбец 'name_service' и 'id_service'???
quinlena
Отправлено: 28 Августа, 2012 - 11:26:10
Частый гость
Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012 Откуда: Казахстан
Помог: 0 раз(а)
Bartezz пишет:
Посмотрите сообщение мое от "28 Августа, 2012 - 12:01:49" если я правильно понял структуру массива $a_tree, то это должно помочь. В таблице `service_cl` есть же столбец 'name_service' и 'id_service'???
Нет, там есть только id_service, а name_service берется из другой таблицы, я уже пробовала, как вы написали, получилось, что надписи не выводятся, только чекбоксы
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.