0
SQLクエリのいくつかの結果を反復しようとすると、最初のエントリが表示されません。以下は、クエリの入力が異なる外部ループにあります。いくつかのバージョンは1行を戻し、他のバージョンは10まで戻しますが、最初の行は常に欠落しています。 "Current entry"から始まる表示行は常に2から始まります。Perl配列はゼロから始まりますが、 "foreach"は特定の数値を要求しません。各配列要素を表示するだけです。私はここで間違って何かをしていますか?配列出力の最初の行が見つかりません
ありがとうございました。
$OurSQL = "select DISTINCT BORROWER.BARCODE, POST_CODE, SURNAME, FIRST_NAMES, ";
$OurSQL = $OurSQL."LOAN.CREATE_LOCATION FROM ADDRESS, CONTACT_POINT, BORROWER ";
$OurSQL = $OurSQL."left join LOAN on (BORROWER.BORROWER_ID = LOAN.BORROWER_ID) ";
$OurSQL = $OurSQL."where (BORROWER.BORROWER_ID = CONTACT_POINT.BORROWER_ID) and ";
$OurSQL = $OurSQL."(CONTACT_POINT.ADDRESS_ID = ADDRESS.ADDRESS_ID) and ";
$OurSQL = $OurSQL."(upper(BORROWER.SURNAME) = upper('".$sname."') and upper(BORROWER.FIRST_NAMES) = upper('".$fname."')) and ";
$OurSQL = $OurSQL."(ADDRESS.POST_CODE = '".$postcode."') AND (LOAN.CREATE_DATE >";
$OurSQL = $OurSQL."dateadd(year, -1, getdate())) ORDER BY POST_CODE, SURNAME, FIRST_NAMES, CREATE_LOCATION";
$lib = 0;
(@our_usage) = &sql($d, $OurSQL);
# Iterate through array returned for the current borrower
foreach $entry (@our_usage)
{
# Put current line into our variables
$lib++;
print "Current entry ($lib): $entry\n";
($ourbcode, $ourpcode, $oursname, $ourfnames, $ourloc) = split('~', $entry);
$ourline = "$ourbcode $ourpcode $oursname $ourfnames $ourloc";
# Show each line on screen
print $ourline."\n";
print OUT $ourline."\n";
} # End of results loop
'$ libに++;'あなたは 'index' '0'の' element'ではなく、その後 'index' '1'の要素の値を最初に印刷し増加しています、 'print'文の後に移動します。 – AbhiNickz
最初の 'print'行の後に'; next;を入れます。それは何を示していますか? – Borodin
@AbhiNickz:あなたはそうだけど、OPはこう言っている: ""現在のエントリー "から始まるディスプレイラインは常に2インチから始まる*。あなたのコメントはそのことを説明していません。 – Borodin