The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"PERL::DBI , HTML::Template"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"PERL::DBI , HTML::Template"  
Сообщение от Azudim email(??) on 20-Фев-08, 00:17 
Подскажите чайнику, как можно короче написать:

#!/usr/local/bin/perl
require 'sql.pl';
require 'html.pl';
use CGI qw/:standard/;
my $_IN = new CGI;
use HTML::Template::Pro;

sql_execute("SELECT User, Password, Uid FROM users");

my @users = (undef, undef, undef);
$sql_res->bind_columns( \$user, \$pass, \$uid);

my @loop_data = ();
while ($sql_res->fetchrow_arrayref) {
            my %row_data;
            $row_data{NAME} = $user;
            $row_data{PASS} = $pass;
            $row_data{UID} = $uid;
            push(@loop_data, \%row_data);
            }

$tmpl_users_table->param(THIS_LOOP => \@loop_data);
print $tmpl_users_table->output;            

  Задача - передать в THIS_LOOP ссылку на хэш, дабы в шаблоне заЛУУПить вывод массива данных из БД.

Шаблон:
<table width="200" border="1" cellspacing="0" cellpadding="0">
<tr><th scope="col">Users</th><th scope="col">Passwords</th><th scope="col">Uids</th></tr>
<TMPL_LOOP NAME="THIS_LOOP">
<tr><td><TMPL_VAR NAME="NAME"></td><td><TMPL_VAR NAME="PASS"></td><td><TMPL_VAR NAME="UID"></td></tr>
</TMPL_LOOP>
</table>

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "PERL::DBI , HTML::Template"  
Сообщение от angra (ok) on 20-Фев-08, 13:46 
Сократить перловый код почти всегда можно, вот только зачем? Чтобы он стал непонятным и его было трудно поддерживать? Хотя цикл конечно можно упростить, если посмотреть в сторону fetchrow_hashref. А может найдется метод в DBI, который вообще позволит от цикла избавиться, надо описание модуля читать, но ведь вы и сами можете это сделать, правда :)
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру