[PHP-users 19634]ループでの配列処理について

kiminami @ ybb.ne.jp kiminami @ ybb.ne.jp
2004年 1月 1日 (木) 04:45:24 JST


初めて投稿する楠と申します。

環境は
 OS Vine Linux 2.6r2
 Postgresql    7.3.5
 PHP           4.3.4  です。

やりたいこと
分類と商品名称の二つのテーブルがあります。
それぞれに下記のデータが入っています。
分類(現在は連番ですが飛び番号もあり得ます。)
  1
  2
  3
商品名称
名称  分類
 a       1
  b       1
  x       2
  y       2
  z       2
  A       3

分類テーブルから分類名称を取り出し、その分類に合致した
商品名称を取り出そうとしています。

<?php
$con = pg_connect("dbname=test user=hoge");
for ($i=1;$i<4;$i++){ // ここはテストのために書き換えてあります。
    $sql = "SELECT g_no, g_name FROM 商品 WHERE 分類='$i';";          
    $res= pg_query($con, $sql);
        echo $sql;
        print("<br>\n");
        $rows=pg_numrows($res);
        echo $rows;
        print("<br>\n");
                for ($j=0;$j<$rows;$j++){
                $data=pg_fetch_array($res,$j);
                $g_da[]=array($data);
                //print_r($g_da);
                print_r($g_da[$j][0][1]);
                print("<br>\n");
        }
}
?>

実際のスクリプトには日本語は使用しておりません。

期待した結果
分類 1  a
           b
分類 2    x
           y
           z
分類 3    A

しかし実行結果は
分類 1  a
           b
分類 2  a
           b
           x
分類 3  a
となってしまいます。 pg_fetch_array()でデータが区別できて
いないと思われます。

解決に至るヒント等ございましたら宜敷ご教授の程お願いいたします。



PHP-users メーリングリストの案内