[PHP-users 27960] Re: ループ処理
Yusuke Ando
ando @ rikezemi.com
2005年 12月 29日 (木) 18:35:11 JST
安藤です。
> 一レコードずつしか返さないので
> 一度に複数レコード(2次配列かな)すべてを返すようにする
> といったことなのでしょうか?
mysql_query()の戻りは結果にアクセスするためのリソースであり、
直接表示する事はできません。
また実行結果が複数、または0件であってもリソースは1つになります。
> //SQL実行
> $rec = $obj2 -> db_sql_more($sql);
> echo '<FORM><SELECT size="3" name="sentakuid">';
> //1件ずつ取り出すループ
> while( $res = mysql_fetch_array( $rec, MYSQL_ASSOC ) ){
~~~~~~~~~~~~~~~~~~~~~~~
メソッドから帰ってきた値をmysql_fetch_arrayするのであればリソースを期待
しているという事になります。しかしメソッドの中では
> $rs = mysql_query( $sql, $conn );
> $rec = mysql_fetch_array( $rs, MYSQL_ASSOC ) ;
> //切断
> mysql_close($conn);
>
> return $rec;
リソースではなくfetchした結果の配列を返そうとしています。メソッドを通し
てやりとりするものが統一されていないようです。動かすだけであれば$rsを
returnすれば動きそうですが・・・。
> mysql_fetch_assoc関数や
> mysql_fetch_object関数もしらべてみたのですが
> いまいち使い方が分からなく・・・・。
これは理解できるまで単純なサンプルなどを書いてみたり、フリーのスクリプト
などの先人のソースを見て勉強してみてください。
--
Yusuke Ando <ando @ rikezemi.com>
PHP-users メーリングリストの案内