pg-box.jp
140219訓練 | ハコソフト
昨日からのお題。 英単語テーブル「words」を検索するページを作る。 ページャー付きでモリッと作ったのでコードをドーンッ! 検索ページを作る コード ページャーリンクにクエリパラメータを渡して、 (そのページの値-1) × 20件目から20件分配列の要素を取り出す処理をしている。 表示 軽くスタイルあててます。 const 定数を定義する。 本来はクラス定数を定義するものだったが、PHP5.3.0以降ではクラス外で定義できるようになった。 詳しくはマニュアルの構文の項目で。 今回は1ページに表示する件数を定数とした。 PDOStatement::fetchAll 全ての結果行を含む配列を返す。 結果セットをそのまま配列に入れたい場合などに使える。 SQL文を二回発行(レコード数、ページに表示する20行だけのレコード)したくなかったので一度全部配列に詰めている。 PDOStatement::rowCount 直近のSQLステートメントによって作用した行数を返す。 今回は検索結果の結果セットの行数(ヒットした数)を取らせるつもりだったが配列に詰めてるしcountでいけるやん・・・・ということでコメントアウト。 ceil 端数の切り上げ。数学関数の一つ。 今回はページ数を割り出すのに少数になったり切り捨てになったりで最終ページが表示されない状態にならないために使った。 echoとprint 文字列を出力するという点においては差は無い。 好き好きなんて言う話もあったりする。 ただ挙動が違うのでここで一回押さえておこうと思う。 echoの特徴 一つ以上の文字列を出力する。 カンマ区切りで複数の文字列を出力できる(ただし括弧を使うと複数指定できない) 返り値が無い(printよりわずかに速い) printの特徴 文字列を出力する。 複数の文字列は出力できない(ただしピリオドによる文字列連結は出来る) 返り値がある、常に1を返す(この処理でechoよりわずかに遅い) こちらの記事「あなたは『echo』派?それとも『print』派?」 - ht79.infoではPerlにはechoが無かったはずだから昔からそういう言語に触れている人はprintが多いのでは?と言及しています。 こちらの記事「PHPのechoとprintの違い」 -