powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PERL) вывод данных в таблицы с заголовком
14 сообщений из 14, страница 1 из 1
(PERL) вывод данных в таблицы с заголовком
    #33242204
HeoH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!

Есть такая проблема: пытаюсь придумать функцию для вывода данных из таблицы mysql в таблички с заголовками.
В таблице есть "разделы"(столбец с номером раздела) я хочу вывести каждый подраздел в отдельной табличке и чтобы в каждой табличке был заголовок.

Основная сложность заключается в том, что в разделах существуют либо пустые либо нулевые столбцы, которые не хочу выводить. соответсвенно не хочу чтобы и не было заголовка для этого столбца таблицы.

Реализовать все хочу на perl.
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33242550
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что Вы подразумеваете под заголовками?
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33242635
HeoH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот пример чего я хочу (но без нулевых и пустых столбцов):
http://promelektro.eslidesign.ru/cgi-bin/neuscript.pl

загловки это строки типа:
# Watt Volt Cap Diameter name Lumen life quantity EEC kod candela price
берутся из таблицы таким образом:
Код: plaintext
1.
2.
3.
4.
foreach(@{$sth->{NAME}})
{
   push(@cols, td($_)) if real_show( 0 ,$_);
}

Например, в первой табличке есть пустой столбец candela его я выводить не хочу.
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33242645
HeoH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на функцию show_real не обращайте внимание
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33242686
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для начала не путайте в каждом предложение названия, во вторых candela не пустой столбец, а емеет значение 0 , это две разные вещи!

Код: plaintext
1.
push(@cols, td($_)) if($_);

совсем не вижу смысла между куском кода которые Вы привели и данной ссылкой. По ссылке Вы выводите информацию, а в коде добавляете в массив.
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33242696
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так же рекомендую прочитать Тык
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33242727
HeoH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я написал что мне не нужно выводить нулевые и пустые .
в приведенном куске кода я хотел показать что значения для строки заголовков я беру с помощью DBI ($sth->{NAME}) и все.
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33242780
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если Вы спрашиваете, как мне не выводить пустые и нулевые строки, тогда покажите как Вы пытаетесь выводить...
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33245938
HeoH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То что на страничке выводится следующим кодом:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
$sth=$dbh->prepare("SELECT * FROM $type,grp,class WHERE $type.grp=grp.id AND $type.class=class.id");
$res=$sth->execute();
print start_html();

foreach(@{$sth->{NAME}})
{
   push(@cols, td($_));
}
unshift @cols, td('#');

while(my $c = $sth->fetchrow_hashref())
{
   my @row;
   ### разбиваем на разные таблицы
   push @table, '</table><br><table border="1">' if(($last_class ne $c->{class})&&($last_class));
   ### счетчик рядов
   push @row, td(++$i);

   ### заносим название таблицы
   if (($last_class ne $c->{class}))
   {
	push @table, Tr(td({colspan=>$sth->{NUM_OF_FIELDS},bgcolor=>'#cccccc'},$c->{class_name}));
   }
   ### заносим заголовок для таблицы
   if ($last_grp ne $c->{grp})
   {
	push @table, Tr(td({colspan=>$sth->{NUM_OF_FIELDS},bgcolor=>'#eeeeee'},$c->{group_name}));
	push @table, @cols;
   }
   ### заносим в масив текущую строку
   foreach(@{$sth->{NAME}})
   {
	push @row, td($c->{$_});
   }
   push(@table, Tr(@row));
   $last_class=$c->{class};
   $last_grp=$c->{grp};
}
###выводим таблицу
print table({border=> 1 },@table),br();
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33270331
HeoH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посоветуйте хотябы на каком уровне делать?
На уровне mysql или perl?
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33270406
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заносить данные для текущей подтаблицы (как вы разбиваете для разных 'class') предварительно в массив @subtalbe, а не в @table. При смене 'class': сначала проверять каждый столбец в @subtalbe на наличие хотя бы одного ненуля или непустоты; и лишь после этого уже имея маску типа '1110011011' или qw(1 1 1 0 0 1 1 0 1 1) (столбец печатать/не печатать) делать в соответствии с нулями в маске исключение (splice) заголовков из массива @subcols (в который предварительно записать @cols), из данных (каждой строки @subtable) и $sub_NUM_OF_FIELDS-- (предваритально имевший значение $sth->{NUM_OF_FIELDS}); и только теперь в @table добавлять название таблицы (со спаном $sub_NUM_OF_FIELDS), заголовок из @subcols, данные - все строки из @subtable.
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33284747
HeoH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось бы узнать как делать исключение элеменотов массивов по маске?
Насколько я знаю splice исключает из масива элемент(диапазон эелементов). Как его связать с маской?
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33284752
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HeoHХотелось бы узнать как делать исключение элеменотов массивов по маске?
Насколько я знаю splice исключает из масива элемент(диапазон эелементов). Как его связать с маской?
grep?
...
Рейтинг: 0 / 0
(PERL) вывод данных в таблицы с заголовком
    #33285746
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeXa NalBatимея маску типа '1110011011' или qw(1 1 1 0 0 1 1 0 1 1) (столбец печатать/не печатать) делать в соответствии с нулями в маске исключение (splice) заголовков из массива @subcols (в который предварительно записать @cols) HeoHХотелось бы узнать как делать исключение элеменотов массивов по маске?
Насколько я знаю splice исключает из масива элемент(диапазон эелементов). Как его связать с маской?По-разному можно сделать. Может проще и без splice. Например:
Код: plaintext
1.
2.
3.
4.
5.
die if scalar(@mask) != scalar(@cols);
my @subcols=();
for ( my $i= 0 ; $i<scalar(@mask); $i++ ) {
  push @subcols, $cols[$i] if $mask[$i];
}
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PERL) вывод данных в таблицы с заголовком
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]