人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

再びMySQLです。たびたび申し訳ない…。
mysql_fetch_arrayなどで、読み込み終わったレコードセットを再利用すべく、
レコードの先頭に戻りたいのですが、そのような事はできますか?

●質問者: nakeyouguisu
●カテゴリ:ウェブ制作
✍キーワード:MySQL レコード
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● きゃづみぃ
●22ポイント

http://www.widestudio.org/ht-ref/WSCdbRecord-fmain.html

MoveFirst で いかがでしょうか?

◎質問者からの返答

MoveFirstがつかえるのでしょうか??


2 ● bmkage
●24ポイント

ただ先頭に戻りたいだけ。。。というのなら

再度Selectをかけてもう一度mysql_fetch_array()をやりなおせば

レコードの先頭に戻るといえば戻るのですが、

そうではなくて、好きなときに好きなレコードの値が取得したいのかな?と解釈しました。


何らかの関数で、結果セットのカーソル(?)を先頭にもどす、というのはすぐに思いつかないのですが

私の場合は、最初にSelectをかけた後、一度ループで全ての結果セットを配列に取るという方法をとっています。


$result = mysql_query(”select fld1, fld2 from table”);

while ($row = mysql_fetch_array($result)) {

# 一度配列としてとっておけばあとでいつでも参照できる

$FLD1[$i] = $row[”fld1”];

$FLD2[$i] = $row[”fld2”];

$i++;

}


上の例でいけば、$FLD1[0]に先頭のレコードのfld1の値が入っているカンジです。


的外れだったらすいません。

◎質問者からの返答

同じようなSQLを発行する負荷が高いように感じたので、カーソルの位置を変更できるのであればしたいなと思った次第です。ODBC接続などを用いていればMovefirstすれば済む話なのですが、使えるのかな??

配列はさすがに負荷が・・・


3 ● bmkage
●22ポイント

http://tsuttayo.sytes.net/mysql/odbc/

MySQLのODBC(MyODBC)

ODBC接続で、MySQLが使用できるか?ということですね?


結論から言えば、使用できます。


ただし、MySQL用のODBCドライバをインストールする必要があります。

今まで記述していたソースも、ODBC用に書き換える

必要も出てきますよね?


下記のサイトに、インストールから接続・設定の例や

AccessやExcelなどからの使用例(リンク)がありますのでご覧になってはどうでしょう?

◎質問者からの返答

PHPにて用意されている標準関数にてサポートされているMovefirstはないですかね・・・?


4 ● SOBA
●22ポイント

while($row = mysql_fetch_array($res)) {

}


ではなく


for ($i = 0 ; $i < mysql_numrows($res) ; $i++) {

$row = mysql_fetch_array($res,$i,MYSQL_ASSOC);

}


などとすれば再度先頭から読み出せると思います。

◎質問者からの返答

なるほど、mysql_numrowsで全行を取得して・・・

MYSQL_ASSOCをint [result_type]として設定すれば取得レコード番号を指定できるわけですか。

http://php.s3.to/man/function.mysql-fetch-array.html

と思ったら連想添字と数値添字だけのオプションでした…

こんな書きかたできるんですか?


5 ● SOBA
●0ポイント

http://www.amazon.co.jp/exec/obidos/ASIN/4797321288/qid=11135886...

Amazon.co.jp: PHPによるWebアプリケーションスーパーサンプル: 本: 西沢 直木

以前購入した書籍(URL参照)に載っていて、whileよりも使いやすかったので

それ以降ずっとこの方法で利用していました。

レコード番号が指定出来るので結構便利だったのですが。


改めてマニュアル見てみたのですが…

どこにも載ってないですね…

◎質問者からの返答

類似関数でしょうか…

なにかサイドパーティのものが用意されているのかもしれないですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ