чтение данных из БД в perl
$sth->execute();
my @buf_arr = $sth->fetchrow_array;
my $pointer = \ @buf_arr;
my $bufer = '<TR><TD>'.$msg[1].'</TD><TD>'.scrolling_list(-name=>'recommended_service',
-values=> $pointer,
-size=>1,
-multiple=>0).'<TD></TR>';
$sth->finish();
funclocal::print_result_end($bufer);
Тут все просто читается данные из таблицы и помещаются в select(html). Вот только проблема попадает в select(html) только первая строчка выборки. Как сделать так что б вся выборка туда угодила?
$sth->execute();
my $bufer;
my @buf_arr;
while (@buf_arr = $sth->fetchrow_array) {
my $pointer = \ @buf_arr;
$bufer .= '<TR><TD>'.$msg[1].'</TD><TD>'.scrolling_list(-name=>'recommended_service',
-values=> $pointer,
-size=>1,
-multiple=>0).'<TD></TR>';
}
$sth->finish();
funclocal::print_result_end($bufer);
my @byfer; my $counter = 0;
while (my $str_hash = $sth->fetchrow_hashref())
{
@byfer[$counter] = $str_hash->{'servicename'};
$counter++;
}
полученный массив можно будет передать в формовку и все в шеколаде будет, наверное, но это какой то тупой код если честно, должен быть более просто способ.
попробуй прежде чем говорить, и я бы на твоём месте воздержался от резких высказываний, ок?
ЗЫ: и для ОСОБО умных $dbh->selectall_arrayref($statement);
ЗЗЫ: короче, иди в ман
попробуй прежде чем говорить, и я бы на твоём месте воздержался от резких высказываний, ок?
ЗЫ: и для ОСОБО умных $dbh->selectall_arrayref($statement);
ЗЗЫ: короче, иди в ман
Я не хотел Вас обидеть, но этот код действительно нарисует несколько select на странице, так как в цикле он будет его рисовать, то есть на каждую этэрацию(то есть запись выборки) будет свой select.
извиняюсь, я подумал о запросах.
щаз сообразим...
вот так попробуй, должно получиться.
$sth->execute();
my @buf_arr;
my @result;
while (@buf_arr = $sth->fetchrow_array) {
push @result, @buf_arr; # просто добавляем массив полученных значений в результирующий массив и сё :)
}
my $bufer = '<TR><TD>'.$msg[1].'</TD><TD>'.scrolling_list(-name=>'recommended_service',
-values=> \@result,
-size=>1,
-multiple=>0).'<TD></TR>';
$sth->finish();
funclocal::print_result_end($bufer);
если возникнут проблемы с перловыми модулями, первым делом дуй на search.cpan.org там ищи модуль и читай, по DBI, например, там суперподробная справка )
если возникнут проблемы с перловыми модулями, первым делом дуй на search.cpan.org там ищи модуль и читай, по DBI, например, там суперподробная справка )
Дело вкуса, конечно же, но среди всего многообразия пакетов для работы с базами больше всего нравитца Class::DBI http://search.cpan.org/~tmtm/Class-DBI-v3.0.16/lib/Class/DBI.pm
как-то не заморачивался особо на эту тему )
удобно тем что не приходится заморачиваться на всякие "низкоуровневые" примочки аля создание хендлера, подготовки запроса, проверки подготовки запроса, исполнения запроса, проверки исполнения запроса, копирования полученного массива в поля рабочего объекта. Собственно. зачем тратить время на изобретения еще одного велосипеда, когда он уже готов и неплохо ездит ;)= Т.е. как пример использования.
Есть задача - нужно обрабатывать две сущности, связанные отношением один ко многим. Страны -> Города. При помощи этого пакета, ты работаешь с объектом Страна как обычно, ты можешь попросить у него "дай список городов"
вместо того что бы, переписывать однотипный код аля
my $sht = $dbh->prepare(qq/select * from city where country_id = ?/);
die "cant prepare" unless $sth;
$sth->execute() || die "can't execute"
for ( ) {
.....
}
Ну и вообще, писать тесты для такое кода - одно удовольствие :)=
Тень Пса, а твой модуль чем отличается от описанного ReDrum?
удобно тем что не приходится заморачиваться на всякие "низкоуровневые" примочки аля создание хендлера, подготовки запроса, проверки подготовки запроса, исполнения запроса, проверки исполнения запроса, копирования полученного массива в поля рабочего объекта
И вообще, где можно найти рекомендации по поводу набора пакетов для программирования того или иного?
мне например кроме 5ти ф-й из написанного модуля ну вооообще ничего порой не надо ) селект, екзекут =) ну и тд ) вот я и пользую... ни разу еще не задумался о том, чтобы переписать... вроде пока все устраивает...
опять же, в зависимости от задач. базовые функции реализовализованы... так что пока что жаловаться не на что )