Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Цикл к элементам запроса выборки из списка.

16.06.2015, 09:33
zhenya_mzmo

Зарегистрирован:
2006-11-08
Сообщений: 40

Здравствуйте. Пытаюсь создать компонент добавления в раздел сертификатов и лицензий.

В итоге должен получится такой код:

Код:

*Префикс обекта*
<div id='gallery'>
*Объект в списке*
<h1>Sertificate_Name(id1)</h1>
//Соответствующие этому виду сертификатов фото (реализуется галереей мал.изображение - ссылка на большое изображение)
<a href='$f_Pic_Big'><img alt='Сертификаты и лицензии' title='$f_Name' src='$f_Pic'></a>
<a href='$f_Pic_Big'><img alt='Сертификаты и лицензии' title='$f_Name' src='$f_Pic'></a>
<h1>Sertificate_Name(id2)</h1>
<a href='$f_Pic_Big'><img alt='Сертификаты и лицензии' title='$f_Name' src='$f_Pic'></a>
<a href='$f_Pic_Big'><img alt='Сертификаты и лицензии' title='$f_Name' src='$f_Pic'></a>
*Суффикс обекта*
</div>


Поле Sertificate - список, создала список Sertificate, внесла туда 11 видов возможных сертификатов.

Теперь при добавлении пользователем сертификата, им заносятся:
• название сертификата (Name)
• мал.фото (Pic)
• бол.фото (Pic_Big)
• выбирается из списка соответствующий вид вносимого сертификата.

Проблема вот какая, так как я не сведуща в данных делах, пытаюсь прописать в "Объекте в списке" присвоение для выбранного пользователем вида сертификата фото.мал со ссылкой на фото бол.
Я так понимаю, что необходимо организовать цикл по элементам запроса выборки из таблицы списка (Classificator_Sertificate), и на каждом его шаге делать запрос к таблице компонента, выбирая те записи, значения поля списка которых равно текущему значению, полученному на внешнем цикле. Понимать понимаю, прописать не умею)))

Пишу так:
*Объект в списке*
Код:
<? $Sertificate = $nc_core->db->get_results("SELECT Sertificate_Name FROM `Classificator_Sertificate`", ARRAY_A );

foreach ($Sertificate as $item) {
echo " <h1>$item[Sertificate_Name]</h1><a href='$f_Pic_Big'><img alt='Сертификаты и лицензии' title='$f_Name' src='$f_Pic'></a>\n";

}; ?>


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

korvin
16.06.2015, 09:52
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 386

Здравствуйте.

Если честно я не понял, что у Вас не получается и что вы в итоге хотите)

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
16.06.2015, 09:55
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 386

Вы поля прописываете просто $f_Name ?

Какая у Вас версия системы?
Если 5, то надо обращаться к полям объекта вот так: <?= $f_Name; ?>
Если 4, то ".$f_Name."

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
16.06.2015, 11:11
zhenya_mzmo

Зарегистрирован:
2006-11-08
Сообщений: 40

Версия 5,5
$f_Name прописаны тут title='$f_Name'

Получается в h1 прописаны все виды сертификатов и каждому присвается одна фотография, которую вношу к определенному виду. Я даже не знаю как по другому сказать, фото присваивается всем видам, а ни тому, к которому относится

korvin
16.06.2015, 11:26
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 386

Цитата:
$f_Name прописаны тут title='$f_Name'

Я имею ввиду вместо $f_Name, нужно писать <?= $f_Name; ?>

Код:
*Префикс обекта*

<div id='gallery'>

*Объект в списке*

<h1><?= $f_Sertificate_Name; ?></h1>

//Соответствующие этому виду сертификатов фото (реализуется галереей мал.изображение - ссылка на большое изображение)

<a href='<?= $f_Pic_Big; ?>'><img alt='Сертификаты и лицензии' title='<?= $f_Name; ?>' src='<?= $f_Pic; ?>'></a>

*Суффикс обекта*

</div>


Цитата:
Получается в h1 прописаны все виды сертификатов и каждому присвается одна фотография, которую вношу к определенному виду. Я даже не знаю как по другому сказать, фото присваивается всем видам, а ни тому, к которому относится


В списке объектов Вам нужно вывести названия всех сертификатов?

Т.е. каждый отдельный пользователь добавляет по одному сертификату, а Вам надо вывести все эти сертификаты сразу?

Просто в каком виде они должны отображаться?

Вы изменили обращение к переменным с $f_Name на <?= $f_Name; ?> и т.д.?

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
16.06.2015, 12:08
zhenya_mzmo

Зарегистрирован:
2006-11-08
Сообщений: 40

Мне надо вывести весь список видов, а под каждым <h1> (берутся из списка Sertificate_Name) вывести фото сертификатов, присвоенных при добавлении пользователем исключительно к какому-то из видов сертификатов (Sertificate_Name).

На данный момент добавленное фото, выводится под каждым видом сертификата.

korvin
17.06.2015, 21:48
Игорь
Игорь Мишарин
Игорь

Зарегистрирован:
2011-11-20
Сообщений: 479

В "Объект в списке" Вам нужно делать SQL-запрос на выборку самих сертификатов (изображения), а не видов сертификатов.

Stark
18.06.2015, 22:59
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 386

До меня наконец то дошло, что Вам необходимо сделать улыбка
Префикс:
Код:

<div id='gallery'>

Объект в списке:
Код:

<h1><?= $f_Sertificate_Name; ?></h1> // Sertificate_Name - название поля сертификатов в компоненте
<?= listQuery("SELECT * FROM Message".$classID." WHERE ".$f_Sertificate_Name_id."=Sertificate_Name", "<a href='\".nc_file_path($classID, \$data['Message_ID'], 'Pic_Big').\"'><img src='\".nc_file_path($classID, \$data['Message_ID'], 'Pic').\"' alt='\$data[Sertificate_Name]'></a>"); ?>

Суффикс:
Код:

</div>

Системные настройки:
Код:

<?php
$query_group = "Sertificate_Name";
$distinct = 1;
?>

Сортировать объекты по полю (полям):
Код:

$f_Sertificate_Name


Протестировал, всё работает вроде как вам нужно.

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
22.06.2015, 11:22
zhenya_mzmo

Зарегистрирован:
2006-11-08
Сообщений: 40

Не сработало. Может потому что, Sertificate_Name - это имена внесенных сертификатов в список Classificator_Sertificate. Воот, но меня натолкнуло на мысль, написать условие как у Вас.
Код:
<? $Sertificate = $nc_core->db->get_results("SELECT Sertificate_Name FROM 'Classificator_Sertificate' WHERE  ".$f_Sertificate_Name_id."=Sertificate_Name", ARRAY_A ); 

foreach ($Sertificate as $item) {

echo "<h1>$item[Sertificate_Name]</h1><a href='$f_Pic_Big'><img src='$f_Pic' alt='Сертификаты и лицензии' title='$f_Name'></a>\n";

}; ?>

Но снова у меня не работает в ауте
Проблема как раз в условии WHERE ".$f_Sertificate_Name_id."=Sertificate_Name"

korvin
22.06.2015, 12:20
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 386

Наверное будет лучше, если Вы постучитесь ко мне в скайп: ipm-skype

Я попробую разобраться и Вам помочь.

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
198 196 2015-06-22 12:20:28 14197
Описание проекта