- ベストアンサー
phpとmysqlでデータの一覧表示方法を解説!
- phpとmysqlを使用してデータを一覧表示する方法を解説します。一覧表示にはLIMIT句を使用し、ページごとに表示する件数を指定します。
- また、間隔を空けるために<hr>や<br>タグを挿入する方法も紹介します。現在はLIMIT句を使って複数のqueryを発行していますが、1回のqueryで処理する方法もあります。
- データベースのテーブルのレコードをLIMIT句で指定した範囲ごとに取得し、whileループで繰り返して表示することでデータの一覧表示ができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>おかしなところなどありますでしょうか。 「 $i = --$i; 」は、動作はすると思いますが、とても不自然な書き方です。 --$i; は $i = $i-1; の省略型ですから、 省略型と普通の書き方がごちゃまぜになってしまっています。書くなら 「 $i = $i-1; 」 か「 --$i; 」だけのどちらかにしましょう。 >また、教えていただいたif(!--$i)の部分が分かりませんでした・・ >その点も教えて頂けると嬉しいです。 (すでにご理解されているように思えますが一応。) 感嘆符 ! は、否定ですので if(!--$i)は、 「 まず$iを-1して、その結果が FALSE つまり 0 なら~」ということです。 $i=$i-1; if($i == 0){ ですね。 他のプログラム言語でも、演算子はほぼ同じですので、一度「演算子」に目を通しておかれるとよいかと思います。 http://www.php.net/manual/ja/language.operators.increment.php ※もちろん無理に省略する必要はありません。ご自分で分かりやすいのが一番です。
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
$i = --$i; はありえない・・・。 --$iという書式はデクリメントといって $i=$i-1という意味ですから それを$iに代入しても仕方がありません。
お礼
指摘して頂きありがとうございました。
- JaneDue
- ベストアンサー率75% (263/350)
カウント用のflagをたてればOKです。一度に100件取得して $i=10; //区切りたい件数 while(~){ 処理~ //最後に$iを-1する。0なら<hr>出力して、カウンタを10に戻す if(!--$i){echo "<hr>"; $i=10;} }
お礼
ありがとうございます。 アドバイスを参考にして下記のようにしてみました。 ぱっとみたところうまくいっているのですが おかしなところなどありますでしょうか。 $i=10; //区切りたい件数 while(~){ 処理~ $i = --$i; if($i==0){ echo '<hr>'; $i = 10; } } また、教えていただいたif(!--$i)の部分が分かりませんでした・・・ その点も教えて頂けると嬉しいです。
お礼
丁寧に教えて頂きましてありがとうございました。 とても分かりやすかったです。