Forum Webscript.Ru
Программирование => Perl => Тема начата: linke от 19 Августа 2004, 16:31:30
-
Понятно что надо соеденится с базой, сделать выборку,записать массив и т.д. Только что-то не получается
-
1. Нужно делать правильно.
2. Вопроса я не услышал.
3. Гадать что у тебя не получается здесь никто не будет.
-
По-моему вопрос очевиден. как в popup_menu вставить данные из столбца таблицы?.
-
Вопросы с popup menu не относятся к языку Perl.
Что за базу ты используешь?
Что умеешь делать?
-
Почему не относятся.
print start_form(-action=>url()),
popup_menu(-name=>"kollroom",
-value=>["1","2"],
-labels=>{"1"=>"1","2"=>"2"} );
БД MySql
-
Другое дело.
И что не работает, какие ошибки?
Выборка из БД происходит?
-
Выборка происходит.Не знаю как сделать чтобы не ручкамиза полнять, а брать значение из базы.А то если ручками там очень много и не удобно потом что-то менять.
my $dbh = DBI->connect("DBI:mysql:database=base;host=127.0.0.1",
"", "");
my $rec=$dbh->prepare("SELECT field FROM main ");
$rec->execute;
print "";
my $all_ref = $rec->fetchall_arrayref;
popup_menu(-name=>"kollroom",
-value=>[@$all_ref],
-labels=>{@$all_ref} );
Так не работает
-
тоесть @$all_ref пустой?
-
Неа вместо значений поля таблицы Array(0x1d39bd0)
-
Вот с этого и нужно было начинать.
Замени на $all_ref->
-
Не помогло
#!/usr/bin/perl
use DBI;
use CGI qw(:standard escapeHTML);
print "Content-type: text/html\\n\\n";
my $dbh = DBI->connect("DBI:mysql:database=base;host=127.0.0.1",
"", "");
my $rec=$dbh->prepare("SELECT * FROM metro ");
$rec->execute;
print "";
my $all_ref = $rec->fetchall_arrayref;
print header(),
start_html(-title=>"Скрипт ");
print start_form(-action=>url()),
popup_menu(-name=>"kollroom",
-value=>[$all_ref->
-labels=>{$all_ref->
print end_form();
Может я туплю просто
-
Что выводит $all_ref->
-
ARRAY(0x1d339ac)
-
linke
Читаем документацию DBI:
fetchall_arrayref - формирует ссылку на массив ссылок, то бишь твои данные (поля таблицы) находятся здесь (в двухмерном массиве):
$$all_ref- [y] - где x - строка, а y - столбец