• ベストアンサー

データーベースの結果セットを分けて表示する方法について教えてください(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);     }   }

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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; みたいな感じですか???

tuy1964
質問者

補足

amountainblastさんかいとうありがとうございます。どうしていいか全く判らなかったので、教えていただいた方法を使ってやってみます。 ありがとうございました。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

対象テーブルにidとdataのカラムがあるとして、 次のような書き方をします。 mysql_fetch_arrayを使っていることがいけないのではなく、 使い方が正しくないのです。 while ($row = mysql_fetch_array($result)) { // 1行取得 echo $row['id'] . 'の値は' . $row['data'] . '<br />'; }

tuy1964
質問者

補足

asuuncionさん早速回答をいただきましてありがとうございます。ご指摘いただいた方法について、質問させてください。WHILEをつかった形で一行づつ取得し、最後の行で空になってfalseが返ってくるまで、 行のデーターがかき出されたら、分割されない全件表示になってしまうのではないでしょうか?それともこの形で、idをとりだしたい範囲に指定して分割して取り出すように考えるのでしょうか?すいませんがアドバイス宜しくお願いいたします。

関連するQ&A