misima 漢詩作成支援 - 平仄音韻分析・詩語検索・漢字平仄検索 を久しぶりに更改した。詩語検索(簡易版及び SQL 版),漢字平仄検索について,これまで,ヒットした検索結果を同じページに一括して出力していた。これを改め,100 件単位でページ制御を行うよう改変した。大量ヒット検索を抑止するためである(詩語文字数 3 なんて条件で検索されたら何万件もヒットして,目も当てられないではないか)。
準拠したのは,いわゆるネクストページ方式。ユーザ指定クエリ SQL に limit 句及び offset 句をシステムで付加することにより実現している。検索ボタンから検索実行すると(初回検索),クエリに limit 100 offset 0 を追加して探索し,オフセット 0 から 99 の 100 件の結果表示を完了した時点で,Next(次)/Prev(前)ページへの検索リンクを生成して画面に貼付ける。リンクのアンカーには JavaScript の検索実行関数が設定される。このとき Next にはカレントオフセット + 100 の,Prev にはカレントオフセット - 100 の offset 値設定をしておく。Next をクリックすると,オフセット 100 から 199 までの 100 件が検索・表示されるという論理である。もちろん一発目の検索では Prev ページはありえないので,リンク設定は行わない。
各検索機能画面は以下のようなものである。

漢字平仄検索画面

詩語検索・簡易版画面

詩語検索・SQL 版画面