Forum Webscript.Ru

Программирование => Perl => Тема начата: Dema от 12 Мая 2003, 13:41:15

Название: список элементов
Отправлено: Dema от 12 Мая 2003, 13:41:15
есть список элементов выбранных из mysql по одному столбцу:
$sth = $dbh->query("select film from records");
 print "\\n";
 print "";
 как сделать так, чтобы в зависимости от выбранного пользователем элемента по нему выдавалась подробная информация то есть остальные поля.
по типу
$sth = $dbh->query("select * from records where film=выбранному элементу");
подскажите пожалуйста.
Название: список элементов
Отправлено: C++ от 12 Мая 2003, 15:21:26
Dema
Не совсем понятно, что нужно.... если определить выбранный элемент, то:

print "\\n";

а потом вытаскиваешь выбранное значение $film=$q->param(\'product\');
:)
Название: список элементов
Отправлено: Kwazar от 12 Мая 2003, 16:10:13
$sth = $dbh->query("select film from records");
print "\\n";


Где в Место $i прописываете порядковый номер в массиве "выбрираемого элемента", начиная с 0.
Название: список элементов
Отправлено: Dema от 12 Мая 2003, 22:59:34
C++ а где можно описание param найти а то у меня все время ошибку на нем выдает может я че не так делаю? я в perldoc искал не нашел. есть таблица состоящая из полей npp film zakaz и т. д. как по полю film сделать чтобы он выдал и npp и film и zakaz. вот в чем была суть вопроса.
Название: список элементов
Отправлено: C++ от 13 Мая 2003, 09:51:04
perldoc CGI
по CGI валом доки

use CGI qw(all);
my $q=new CGI;
my $prod=$q->param("product");
my $sth=$dbh->prepare("SELECT * FROM table WHERE film=\'$prod\'");
sth->execute;
while(my @arr=$sth->fetchrow)
   {
     тут то что тебе надо:)
   }
Название: список элементов
Отправлено: Kwazar от 13 Мая 2003, 11:00:56
Можно обойтись и без этого модуля:
   read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
   if (!$buffer)
   {
      $buffer=$ENV{\'QUERY_STRING\'};
   }
   @pairs = split(/&/, $buffer);
   foreach $pair (@pairs)
   {
      ($name, $value) = split(/=/, $pair);
      $value =~ tr/+/ /;
      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
      $F{$name} = $value;
   }
На выходе в переменной $F{name }будет то, что должно быть в форма с именем name.
Не забудь проверить введимые данные....
Название: список элементов
Отправлено: Mog. от 13 Мая 2003, 14:10:18
Цитировать
Kwazar:
Можно обойтись и без этого модуля
Но лучше с ним, тем более, что он обычно присутствует и пользоваться им удобнее чем самопальными парсерами (ИМХО).
Пример использования param
#/usr/bin/perl
use CGI qw( param ); # и никаких обьектов заводить не надо
print "Content-type: text/html\\n\\n";

$x=param(\'x\');
if(!$x){$x="Undefined"}
print " x = $x";
print<




form

Цитировать
Dema:
все время ошибку на нем выдает

А какую?
Название: список элементов
Отправлено: Dema от 13 Мая 2003, 15:39:08
а такую:
 Can\'t call method "param" on an undefined value
но суть не в этом с ним я вроде разобрался а вот не могу сообразить как сделать обработчик событий чтобы он в зависимости от выбранного значения в поле film после нажатия на кнопку ok выдавал все остальное прочитал море литературы по htmlу ничего что мне надо не нашел. а может все таки плохо искал?
Название: список элементов
Отправлено: Mog. от 13 Мая 2003, 15:59:23
Цитировать
Dema:
обработчик событий
Это на всех (практически языках программирования) пишется с использованием волшебного слова if, которое к html(который не есть язык программирования) не имеет никакого отношения. Искал не там.