[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 メーリングリストの案内