私はこれに16時間続けて苦労してきました、そして私は私の知恵の終わりにいます。私はすべてのマンページを読み、自分で作成しようとし、いくつかの例を試し、多くを変更して無駄にしました。
私がやりたいのは、DBからいくつかの行を取得し、各行の変数(列データ)に個別にアクセスできるようにすることです。
#!/usr/bin/perl -w
use strict;
use CGI;
use CGI ':standard';
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
print CGI::header(-expires => '-1d');
use DBI;
$|=1;
use vars qw($getstate $hookup $query $results $city $state $pages $category $lastupdate $progress $actual $city1 $state1 $pages1 $category1 $lastupdate1 $progress1 $actual1);
$getstate = 'Arizona'; ## actually comes in from a query
##$hookup is returned from a sub with database credentials
$query = $hookup->prepare(qq{SELECT `city`,`state`,`pages`,`category`,`lastupdate`,`progress`,`actual` FROM `statesettings` WHERE `pages` > `progress` AND `state` LIKE ? ORDER BY `lastupdate` ASC LIMIT 2});
$query->bind_param(1, "%$getstate%");
$query->execute() or die "Query did not execute";
## I HAVE TRIED all kinds of ways to fetch data! fetchall_arrayref() fetchrow_array() and dozens upon dozens of attempts.
while ($results = $query->fetchrow_hashref) {
$city = $results->{city};
$pages = $results->{pages};
$category = $results->{category};
$lastupdate = $results->{lastupdate};
$progress = $results->{progress};
$actual = $results->{actual};
#####################
}## end WHILE
$query->finish;
$hookup->disconnect;
たとえば、上記では、1つの行にアクセスする方法しかわかりません。
しかし、私は次のようなものが必要です:(明らかに私が要求した行数に設定されています)
$city = $arr[0]['city']; #city from row 0
$city1 = $arr[1]['city']; #city from row 1
または、さらに使用するために各行の列データを個別に取得できるようにします。
私が書いた巨大なコードで実際に成功しました。このコードは、すべてのデータを「:」で配列にプッシュし、後で分割した行を分割して、それぞれをループしました。最も可能性の高いコードで私の結果を得る方法の良い例でした。私がやりたいのは「ビルトイン」であることは知っていますが、私には頭脳の力がありません。何時間も経ってもこれがわからないという点で、完全に脳死しているように感じます。近すぎて見えない?
サンプルコードと一緒に少し説明したいので、メカニズムを学び/理解することができます。ご指導ありがとうございます...