|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Yuri Khachaturian 2:5020/975.1 23 Mar 2001 17:15:05 To : All Subject : Помогите разобраться с циклом... -------------------------------------------------------------------------------- выборку. Желаемый результат: Группа 1 подгруппа 10 подгруппа 11 ... Группа 2 подгруппа 20 подгруппа 21 подгруппа 22 и т.д. В результате обработки все заканчивается на обработке "Группа 1 с подгруппами". Вот сам код: ... подключение к БД skipped ... while ($ref = $sth->fetchrow_arrayref) { $count=$count+1; my $code = $$ref[0]; $code =~ s///g; $_ = "$code,$$ref[1]"; next unless /^(\d{1,2}),(.*)/; print "<a href=\"$ENV{'SCRIPT_NAME'}?op=expand&sec=$code\">$$ref[1]</a>\n"; &get_sec("$code"); } $rc = $sth->finish; $rc = $dbh->disconnect; } }; sub get_sec { my $req="SELECT CODE,DESCR FROM SC33 WHERE CODE LIKE \"$_[0]%\" ORDER BY DESCR"; $dbh = DBI->connect("DBI:Sybase:server=$sqlserver;database=$database",$user,$passwd); $sth = $dbh->prepare($req); if (!$sth) { my $tmp=$dbh->errstr; print "$tmp$req"; } elsif (!$sth->execute) { my $tmp=$sth->errstr; print "$tmp$req"; } else { my $ref; my $xcount; print "<blockquote>"; while ($ref = $sth->fetchrow_arrayref) { $xcount=$xcount+1; my $code = $$ref[0]; $code =~ s///g; $_ = "$code,$$ref[1]"; next unless /^(\d{1,4}),(.*)/; if (!/^(\d{1,2}),(.*)/) { if ($$ref[1] eq "___" ) { $$ref[1] = "пЮГМHЕ"; } elsif ($$ref[1] eq "____________" ) { $$ref[1] = "пЮГМHЕ"; } print "<a href=\"$ENV{'SCRIPT_NAME'}?op=goods&sec=$code\">$$ref[1]</a><br>"; } } print "</blockquote>"; $rc = $sth->finish; $rc = $dbh->disconnect; } }; -- Cheers, Yuri Khachaturian, The Official Gamma Ray fanclub in Russia - http://www.gammaray.ru --- tin/1.5.6-20000803 ("Dust") (UNIX) (FreeBSD/4.2-STABLE (i386)) * Origin: A poorly-installed InterNetNews site (2:5020/975.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/290122815b53e.html, оценка из 5, голосов 10
|