Forum Webscript.Ru

Программирование => Perl => Тема начата: linke от 19 Августа 2004, 16:31:30

Название: как в popup_menu вставить данные из таблицы
Отправлено: linke от 19 Августа 2004, 16:31:30
Понятно что надо соеденится с базой, сделать выборку,записать массив и т.д. Только что-то не получается
Название: как в popup_menu вставить данные из таблицы
Отправлено: NeoNox от 19 Августа 2004, 16:33:50
1. Нужно делать правильно.
2. Вопроса я не услышал.
3. Гадать что у тебя не получается здесь никто не будет.
Название: как в popup_menu вставить данные из таблицы
Отправлено: linke от 19 Августа 2004, 16:37:24
По-моему вопрос очевиден. как в popup_menu вставить данные из столбца таблицы?.
Название: как в popup_menu вставить данные из таблицы
Отправлено: NeoNox от 19 Августа 2004, 16:54:47
Вопросы с popup menu не относятся к языку Perl.
Что за базу ты используешь?
Что умеешь делать?
Название: как в popup_menu вставить данные из таблицы
Отправлено: linke от 19 Августа 2004, 17:00:26
Почему не относятся.
 print start_form(-action=>url()),
  popup_menu(-name=>"kollroom",
             -value=>["1","2"],
             -labels=>{"1"=>"1","2"=>"2"} );
БД MySql
Название: как в popup_menu вставить данные из таблицы
Отправлено: NeoNox от 19 Августа 2004, 17:28:35
Другое дело.
И что не работает, какие ошибки?
Выборка из БД происходит?
Название: как в popup_menu вставить данные из таблицы
Отправлено: linke от 19 Августа 2004, 17:39:42
Выборка происходит.Не знаю как сделать чтобы не ручкамиза полнять, а брать значение из базы.А то если ручками там очень много и не удобно потом что-то менять.

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} );

Так не работает
Название: как в popup_menu вставить данные из таблицы
Отправлено: NeoNox от 19 Августа 2004, 18:04:40
тоесть @$all_ref пустой?
Название: как в popup_menu вставить данные из таблицы
Отправлено: linke от 19 Августа 2004, 18:13:26
Неа вместо значений поля таблицы Array(0x1d39bd0)
Название: как в popup_menu вставить данные из таблицы
Отправлено: NeoNox от 19 Августа 2004, 18:17:08
Вот с этого и нужно было начинать.
Замени на $all_ref->
  • .
Название: как в popup_menu вставить данные из таблицы
Отправлено: linke от 19 Августа 2004, 18:22:03
Не помогло
#!/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();
Может я туплю просто
Название: как в popup_menu вставить данные из таблицы
Отправлено: NeoNox от 19 Августа 2004, 18:41:32
Что выводит $all_ref->
  • ?
Название: как в popup_menu вставить данные из таблицы
Отправлено: linke от 19 Августа 2004, 18:42:47
ARRAY(0x1d339ac)
Название: как в popup_menu вставить данные из таблицы
Отправлено: Phoinix от 20 Августа 2004, 11:01:30
linke
Читаем документацию DBI:

fetchall_arrayref - формирует ссылку на массив ссылок, то бишь твои данные (поля таблицы) находятся здесь (в двухмерном массиве):

$$all_ref
  • [y] - где x - строка, а y - столбец