データベースから取得したデータを配列に格納することができません。
唯一、以下の方法で格納できたのですが、この場合データベースの項目の数が、あらかじめ分かっている場合にしか使用できません。googleで検索して出てくるサンプルは全てループ内でprintしているので参考になりませんでした。
やりたいことは単純で、データベースにクエリーを発行した結果の複数レコードをそのまま配列に格納することです。perlに詳しい方がおられましたらよろしくお願いします。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
■データベース内のデータ
id=1,subid=1,data1=aaa
id=1,subid=2,data1=bbb
id=1,subid=3,data1=ccc
■期待する結果
@result = ("1","1","aaa",
"1","2","bbb",
"1","3","ccc",
)
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
■実際のソース
**********************************************************
use DBI;
#//■DB接続
$db = DBI->connect("DBI:mysql:$DbName:$DbHost", $DbUser, $DbPass);
$sth = $db->prepare($sql);
$sth->execute;
$cnt = $sth->rows;
for($i=0; $i<$cnt; $i++){
@work = $sth->fetchrow_array;
@result[$i] = ([$work[0],$work[1],$work[2],]);
}
#//■CLOSE
$sth->finish;
$db->disconnect;
for($i=0; $i<$cnt; $i++){
print "<p>".$result[$i][0]."/".$result[$i][1]."/".$result[$i][2]."</p>\n";
}
**********************************************************
No.2ベストアンサー
- 回答日時:
検索して出てきたソースを利用してprintしてる変数を配列にいれるんじゃダメでしょうか?
$cnt= $sth->rows;
for ($i=0; $i<$cnt; $i++) {
@a = $sth->fetchrow_array;
push(@result,@a);
}
このすぐ上の記事で同じ事をしたのですが、ここは一度書くと24時間は消せないみたいなので無駄に手間を取らせてしまいました。ありがとうございました。
No.1
- 回答日時:
@result[$i] = ([$work[0],$work[1],$work[2],]);
↓
@result[$i] = @work;
print "<p>".$result[$i][0]."/".$result[$i][1]."/".$result[$i][2]."</p>\n";
↓
print "<p>".join('/',@{$result[$i]})."</p>\n";
これでどうでしょうか。
回答ありがとうございます。
この質問はすぐ上の質問に内容が変わりました。24時間以内だと消せないようなのでお手間を取らせてしまいましてすいませんでした。
基本的にデータ構造が以下のようになっていて、自由に配列の要素にアクセスできたほうが望ましいかもしれません。
@result = (["1","1","aaa"],
["1","2","bbb"],
["1","3","ccc"],
)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- フリーソフト 色々な形式の個人情報を後で参照しやすいようWindow10で管理したいのですが、どんな方法があるの? 1 2023/04/29 16:46
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- PHP PHP MySql ページング 2 2022/09/20 06:38
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースから取得したデー...
-
perlで2つの配列を比較する方...
-
[Perl]長すぎるif文を簡単にしたい
-
桁数指定と四捨五入
-
アルファベットn文字の組み合わ...
-
画面を強制的に再描画させる方法
-
VBAでの一時停止と再開の方法
-
VBのReturnの使い方
-
テキストボックスの名前に変数...
-
UWSCに制限時間を付けたいです
-
再帰関数のインライン展開
-
範囲指定したセルを1つずつ飛...
-
vb.netです。2次元配列の要素を...
-
Excel vba でコンボボックスの...
-
クラスに配列を渡す方法
-
VBA Boxが空白の場合のメッセー...
-
DoEventsが必要な理由について
-
VBAで3秒だけ時間を止めたい
-
エクセル関数で1〜12の数字がル...
-
VBAのautofilter、criteriaの配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースから取得したデー...
-
perlで2つの配列を比較する方...
-
perlでファイルの拡張子を除い...
-
python質問
-
QNo.3258883データベースから取...
-
組み合わせを作るアルゴリズム
-
非共通要素を抜き出す
-
アルファベットn文字の組み合わ...
-
grep関数を用いた複数行からの抽出
-
複数の配列の要素を繰り返し処...
-
桁数指定と四捨五入
-
ハッシュのハッシュの値代入で...
-
サブルーチンへ渡した配列のリ...
-
index関数で複数個抜き出す
-
二次元配列のつかいかた。
-
正規表現 perl 連続ヒットの...
-
配列に入った変数を二度使いたい
-
プログラミングについて。 1つ...
-
画面を強制的に再描画させる方法
-
VBのReturnの使い方
おすすめ情報