Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Обработка формы с динамическими данными!? (Александр) 16/05/2003 - 19:45:51
      Re: Обработка формы с динамическими данными!? (walrus) 16/05/2003 - 23:42:58

> Original message text:
> From: Александр - 16/05/2003 - 19:45:51
> Subject:Обработка формы с динамическими данными!?
> -----------------
> Интересно посмотреть, как с этой проблемой бороться, если учесть тот факт, что форма формируется Perl’овым скриптом, данные берутся из базы и количество полученных данных заранее неизвестно. Т.е., к примеру, я хочу получить форму с товаром, которые есть на складе на сегодня, и установить стоимость каждого товара, а потом все отослать обратно на UPDATE в базу.
> У каждого товара есть свой уникальный ID.
> Обработка формы осуществляется через
> use CGI;
> my $query = new CGI;
> и т.д.,
> т.е. средствами CGI.pm
> Я эту проблему решил, но получилось уж больно мудрено, Приходилось извращаться примерно так
>
> my $sql = "SELECT ID_DISH FROM DISH ORDER BY DISH.id_dish";
> my $sth = $dbh->prepare($sql) || die DBI::errstr;
> $sth->execute || die "Невозможно выполнить SQL-запрос.";
>
> while (($id) = $sth->fetchrow_array) {
> if (defined($query->param("price$id")) && $query->param("price$id") ne '') {
> $sql2 = "UPDATE DISH SET DISH.price='".$query->param("price$id")."' WHERE DISH.id='$id'";
> $sth2 = $dbh2->prepare($sql2) || die DBI::errstr;
> $sth2->execute || die "Невозможно выполнить SQL-запрос.";
> }
> }
>
>
> может есть другие решения?
>
>


From: walrus - 16/05/2003 - 23:42:58
Subject:Обработка формы с динамическими данными!?
-----------------
Да тут у вас вроде особенно мудреного то нет. Можно конечно сократить некоторые части, но в общем все нормально.

Я бы сократил:
if (defined($query->param("price$id")) && $query->param("price$id") ne '') {

заменил бы на
if ( $query->param("price$id")) {
и undef и '' считаются FALSE в перле

Также можно заменить
$sql2 = "UPDATE DISH SET DISH.price='".$query->param("price$id")."' WHERE DISH.id='$id'";
$sth2 = $dbh2->prepare($sql2) || die DBI::errstr;
$sth2->execute || die "Невозможно выполнить SQL-запрос.";

на
$dbh->do( "UPDATE DISH SET price='".$query->param("price$id")."' WHERE id='$id'") or die "Проблема с update".DBI::errstr






[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
8553



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |