- ベストアンサー
データーベースの結果セットを分けて表示する方法について教えてください(PHP&MYSQL)
PHP5.2.4 MYSQL14.12DistriB5.0.4 WINXP IE6.0 やりたいこと、結果セットを分けて表示したい。 20行の結果セットがあるとして、結果セットを表示するのに、10行を表示し、その後10行を表示すると言うように、結果セットを分けて表示する方法を教えてください。現在、下のように考えていますが、これでは、表示が、同じになってしまいます。$row=mysql_fetch_array($result);を使っているのがいけないのでしょうが、どう変更したらいいのかわかりません。宜しくお願いします。 for($i=1;$i<10;$i++){ if($i<=20){ $row=mysql_fetch_array($result); } } for($i=11;$i<21;$i++){ if($i<=20){ $row=mysql_fetch_array($result); } }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 mysql_fetch_arrayの使い方は#1さんの回答でいいと思います。 IDを持っているのであればそのIDで条件分岐して違う変数に格納すればいいのではないでしょうか? while ($row = mysql_fetch_array($result)) { // 1行取得 if($row['id'] <= 10){ $zenhan[$row['id]] = $row['data'] }else{ $kohan[$row['id]] = $row['data'] } } もしくはSQLを2回実行ししてlimitで取得するデータを指定してもよいかと思います。 $sql1 = "SELECT * FROM data limit10; $sql2 = "SELECT * FROM data limit10,20; みたいな感じですか???
その他の回答 (1)
- asuncion
- ベストアンサー率33% (2127/6289)
対象テーブルにidとdataのカラムがあるとして、 次のような書き方をします。 mysql_fetch_arrayを使っていることがいけないのではなく、 使い方が正しくないのです。 while ($row = mysql_fetch_array($result)) { // 1行取得 echo $row['id'] . 'の値は' . $row['data'] . '<br />'; }
補足
asuuncionさん早速回答をいただきましてありがとうございます。ご指摘いただいた方法について、質問させてください。WHILEをつかった形で一行づつ取得し、最後の行で空になってfalseが返ってくるまで、 行のデーターがかき出されたら、分割されない全件表示になってしまうのではないでしょうか?それともこの形で、idをとりだしたい範囲に指定して分割して取り出すように考えるのでしょうか?すいませんがアドバイス宜しくお願いいたします。
補足
amountainblastさんかいとうありがとうございます。どうしていいか全く判らなかったので、教えていただいた方法を使ってやってみます。 ありがとうございました。