Добрый день.
Столкнулся вот с какой задачкой:
Есть два типа материала связанных по полю node reference
В двух типах материалов имеется разная информация,
но эту информацию необходимо вывести в одну общую строчку таблицы.
К примеру, в node A у нас есть информация о некой детали (дата выпуска и прочая чепуха), и есть поле node reference СТРАНА,
которое ссылается на второй тип материала node Б (в данном случае это Страна производитель).
В материале node Б есть поле с изображением флага страны.
Итого надо вывести что-то типа Деталь-Артикул-Страна производитель-Флаг (картинка)
Связь через поле СТРАНА
У меня вывод получается только в соседней строке ((( (так как это два типа материалов).
Подскажите, плиз, как выкрутиться?..
Делаю для себя и своими силами...
Комментарии
Судя по всему это надо делать через PHP, в котором я не очень силен :(... Но чувствую, код очень простой...
Думаю можно написать скрип с запросом в саму базу данных - там изять нужное - и вывести в нужной форме.
Могу попробовать - но нужен скриншот таблицы.
Прилагаю скриншот, хотя он, наверное, не очень информативный...
))))))))))))))
У меня просьбочка немного другого характера была ) (сделать скрин к примеру из пхпМайАдмин этой таблицы (хотелось бы увидеть названия полей))
Ауч, я подумал, что это не столь важно главное принцип
принцип - это конечно да - но чтоб грамотно написать - желательно знать имена полей
могу показать на простом примере скрипт )
Можно на простом примере я разберусь, к примеру есть таблица в ней поля:
field_articul, field_name_product, field_country (это поле типа node reference)
вторая таблица
field_flag_country, field_russian_name_coyntry, field_inizialy_of_country
И вот хочу вывести в таблицу плана:
field_articul | field_name_product | field_country (это поле типа node reference) | field_flag_country
Скриптик написал - не пугайтесь если покажется большой - можно было написать все в 1 цикле - но для того чтоб разобратся в нем - думаю так будет лучше. Дело оптимизации - это уже второй вопрос)
<?php<?
// Для начала соеденимся с базой
$hostname = "localhost"; // В моем случае сайт на денвере висит
$username = "root";
$password = "";
$dbName = "detali"; //Имя нужной базы
$table_detal = "detal"; // Имена наших таблиц
$table_flag= "flag";
$link=mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_query("SET NAMES cp1251");//скорей всего таблица создана в ЮТФ8
//- но для нормального отображения в браузере
mysql_select_db($dbName) or die(mysql_error()); // я сразу ставлю 1251 чтоб не переключать там кодировку
mysql_query("SET NAMES cp1251");
$q = "SELECT * FROM $table_detal";
$res = mysql_query($q);//Делаем выборку данных из таблицы "деталь"
$q2 = "SELECT * FROM $table_flag";
$res2 = mysql_query($q2);//Делаем выборку данных из таблицы "флаг"
$num = mysql_num_rows($res);// Получаем количество строк
$num2 = mysql_num_rows($res2);
//В первом цикле формируем массив из нужных нам столбцов, то же делаем и во втором
for ($i=0;$i<=$num;$i++)
{
$row=mysql_fetch_array($res);
$arr[$i]['field_articul']=$row['field_articul'];
$arr[$i]['field_name_product']=$row['field_name_product'];
$arr[$i]['field_countru']=$row['field_countru'];
}
for ($i=0;$i<=$num2;$i++)
{
$row=mysql_fetch_array($res2);
$arr2[$i]['field_flag_country']=$row['field_flag_country'];
$arr2[$i]['field_inizialy_of_country']=$row['field_inizialy_of_country'];
}
//Теперь начинаем рисовать таблицу - Как она будет выглядеть - дело ваше
// Советую посмотреть справочник по ХТМЛ
echo '<table border=1>';
for ($i=0;$i<=$num;$i++)
{
echo '<tr>';
echo "<td>".$arr[$i]['field_articul']."</td>";
echo "<td>".$arr[$i]['field_name_product']."</td>";
echo "<td>".$arr[$i]['field_countru']."</td>";
$j=0;
//Циклом выводим в строчку АРТИКУЛЬ, ИМЯ ДЕТАЛИ, СТРАНУ
//Далее циклом Вайл ищем совпадение инициалов из поля field_countru с field_inizialy_of_country
//Если такие есть - выводим флаг
while ($j<=$num2)
{ if ($arr[$i]['field_countru']==$arr2[$j]['field_inizialy_of_country'])
{
echo "<td>".$arr2[$j]['field_flag_country']."</td>";
}
$j++;
}
echo '</tr>';
}
echo '</table>';
mysql_close($link);
?>
Спасибо за детальную консультацию, когда попробую сделать, обязательно отпишусь!
Да незачто )))
Ждем тестирования )))
Пока не пробовал, но обошелся, нашел модуль (очень удобный), который позволяет к Термину таксономии присобачить картинку (работает с views)
Тож вариант )