Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зависает - помогите понять в чем проблема 
V
    Опции темы
trigger
Дата 3.12.2006, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



привожу часть кода

Код

sub show_list_user{
print "Cписок&nbsp;&nbsp;<a href=./contact_add.cgi>Добавляем контакт</a><hr><br>";
    my $row;
    my @list_group=("начальство","заместители","бренд-менеджеры","техники","менеджеры","другое");
    my $item;
    foreach $item (@list_group) {
    get_person_list($item); 
    }
}



sub get_person_list{
    my $item=shift;
    my $row;
    my $stmt = (qq {SELECT * FROM persons WHERE corp_position = '$item' ORDER BY last_name});
    $sth = $dbh->prepare($stmt);
    $sth -> execute ();
    $sth ->finish();        
    if ($sth -> execute ()!= 0) {
        print "<h3><font color=red>$item</font></h3>";
        print "<table border=0 width=100% cellpadding=3 cellspacing=3><tr bgcolor=lightblue>
        <td bgcolor=#990000 width=1> </td>
        <td width=20%>ФИО</td>
        <td><IMG SRC=/images/spacer.gif  border=0 width=15 height=1></td>
        <td width=10%>Компания</td>
        <td width=10%>Телефон</td>
        <td width=10%>Профессия</td>
        <td  width=30%>Вкусы</td>
        <td  width=20%>Связи</td><td> </td>
        </tr>";

            while ($row = $sth->fetchrow_hashref())
                    {
                    my ($day,$month,$year,$email,$icq);
                    # даты 
                    if (($day=$row->{b_day}) eq "день") {$day="";} else{$day=$day;}
                    if (($month=$row->{b_month}) eq "месяц"){$month="";} else{$month=$month;}
                    if (($year=$row->{b_year}) eq "год"){$year=""} else{$year=$year;}
                    my $data=qq(<div class=time>$day  $month  $year</div>);
        
                    # редактировать - удалить
                    my $edit_url = sprintf ("%s?choice=edit;id=%d", url (), $row->{id});
                    my $delete_url = sprintf ("%s?choice=delete;id=%d", url (), $row->{id});
        
                    # почта
                    if ($email=$row->{e_mail}){$email=qq(<a href=mailto:$row->{e_mail}><IMG SRC=/images/email.gif alt=$row->{e_mail} title=$row->{e_mail} border=0></a>);} else{$email="";}        
                    if ($icq=$row->{icq}){$icq=qq(<IMG SRC=/images/icq.gif alt=$row->{icq} title=$row->{icq} border=0>);} else{$icq="";}
        
                        print   "<tr bgcolor=#E1E1E1>
                        <td>",checkbox(),"</td>
                        <td>$data $row->{last_name}<br>$row->{first_name} $row->{sub_last_name}</td>
                        <td align=center>$email<br><br>$icq</td>
                        <td>$row->{company}</td>
                        <td>$row->{phone}<br>$row->{phone_mob}</td>
                        <td>$row->{proff_list}</td>
                        <td>$row->{taste}</td><td>$row->{communication}</td>
                        <td nowrap>",       a ({-href => $edit_url}, "<IMG SRC=/images/edit.gif alt=редактировать title=редактировать border=0 hspace=3>"),
                                            a ({-href => $delete_url}, "<IMG SRC=/images/del.gif alt=удалить title=удалить border=0 hspace=3>"),"</td></tr>";
                        
                    }
        print "</table>";
        print "<br>";
           
        }
    else {print "&nbsp;&nbsp;&nbsp;список <i>$item</i> пуст <br>";}


}

PM MAIL WWW ICQ   Вверх
korob2001
Дата 4.12.2006, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Код

$sth -> execute ();
    $sth ->finish();        
    if ($sth -> execute ()!= 0) {
       #.........
    }

Попробуй сделать так:
Код

my $res = $sth->execute();
$res += 0;
if ($res) {
    #........
}
$sth->finish();


Это сообщение отредактировал(а) korob2001 - 4.12.2006, 00:45


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
trigger
Дата 5.12.2006, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



хм... не помогает

решил - руки кривые smile

Это сообщение отредактировал(а) trigger - 5.12.2006, 14:40
PM MAIL WWW ICQ   Вверх
Phoinix
Дата 5.12.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 16.11.2004
Где: Moskau

Репутация: нет
Всего: 2



trigger

Да уж... код кривоват...

А что пишет ErrorLog?

korob2001

Не вижу смысла второго execute()... Скорее все-таки так:

Код

#...

$sth->execute() || die $DBI::errstr;
my $rows = $sth->rows();
if ($rows && $rows > 0) {
    while (my $row = $sth->fetchrow_hashref) {
        #...
    }
} else {
    #...
}
$sth->finish();
#...



Это сообщение отредактировал(а) Phoinix - 5.12.2006, 18:00
PM WWW ICQ   Вверх
korob2001
Дата 5.12.2006, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Цитата(Phoinix @  5.12.2006,  14:59 Найти цитируемый пост)
Не вижу смысла второго execute()... Скорее все-таки так:

Да нет в моём коде  втого execute, в том-то и дело.;)))


Это сообщение отредактировал(а) korob2001 - 5.12.2006, 18:12


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Phoinix
Дата 5.12.2006, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 16.11.2004
Где: Moskau

Репутация: нет
Всего: 2



korob2001

Упс... сорри... не обратил внимание...
Но все же результат execute() не вернет тебе все что нужно...
PM WWW ICQ   Вверх
korob2001
Дата 5.12.2006, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Если execute выполнится успешно, вернёт кол-во выбранных полей, в противном случае строку 0E0, если же была ошибка в запросе, например был указан не существующий столбец, то вернёт undef.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0955 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.