2008年06月21日

[PHP]最近一番がんばったコード



//ナビゲーション用
$searchMaxNum =20;
$naviNum = 7;
$naviNumMedian = ceil($naviNum/2);
$naviMaxNum = ceil($maxItem / $searchMaxNum);

//ページは1から始まるべき
if($naviMaxNum < $page || $page < 0){
$page = 1;
}

//startnumの+1は数字を1からスタートさせるため
//ex)1ページ20件表示なら、1ページ目は1からスタート、2ページ目は21からスタート
//($page-1) * $seachMaxNum + 1でも同じ
$startNum = $page * $searchMaxNum - $searchMaxNum + 1;

//endNumが全アイテム数を超える場合は全アイテム数がendNum
$endNum = ($maxItem > ($page * $searchMaxNum)) ? ($page * $searchMaxNum) : $maxItem;

//ナビメニューの数字 (1|2|3|)のループ用変数の作成

if($naviNum >= $naviMaxNum){
//ナビに表示するページ数より、分割したページ数の方が少ないなら1−最大ページまで表示
$naviStart = 1;
$naviLoop = $naviMaxNum + $naviStart;
}
elseif($page <= $naviNumMedian){
//表示するページが、表示するナビの数の中央より小さいときは1から表示する。
$naviStart = 1;
$naviLoop = $naviNum + $naviStart;
}
elseif(($page + $naviNumMedian) > $naviMaxNum){
//上の逆、最大で10ページしかないとき、10ページを選んでもナビが10だけになら無いように
$naviStart = $naviMaxNum - $naviNum +1;
$naviLoop = $naviNum + $naviStart;
}
else{
//ページ数からナビに表示する数の分表示すればいい
$naviStart = $page - $naviNumMedian + 1;
$naviLoop = $naviNum + $naviStart;
}

//ナビの次のページと、前のページのページ数
$naviNext = (($page + 1) <= $naviMaxNum) ? ($page + 1) : 0;
$naviPrevious = (($page - 1) >= 1) ? ($page -1) : 0;


まぁよくあるページナビゲーションを作りたかった訳だが。
今読み返してみるとコメント変だwww

後下の感じにするのとどっちが読みやすいだろうか。


//ナビメニューの数字 (1|2|3|)のループ用変数の作成

if($naviNum >= $naviMaxNum){
//ナビに表示するページ数より、分割したページ数の方が少ないなら1−最大ページまで表示
$naviStart = 1;
$naviNum = $naviMaxNum;
}
elseif($page <= $naviNumMedian){
//表示するページが、表示するナビの数の中央より小さいときは1から表示する。
$naviStart = 1;
}
elseif(($page + $naviNumMedian) > $naviMaxNum){
//上の逆、最大で10ページしかないとき、10ページを選んでもナビが10だけになら無いように
$naviStart = $naviMaxNum - $naviNum +1;
}
else{
//ページ数からナビに表示する数の分表示すればいい
$naviStart = $page - $naviNumMedian + 1;
}
$naviLoop = $naviNum + $naviStart;

まだまだだなぁ
posted by Belial at 23:34 | Comment(0) | TrackBack(0) | その他 | このブログの読者になる | 更新情報をチェックする

2008年02月23日

共通性のあるブログ記事感を結ぶサービス

【シムエントリ】記事同士でブログをむすぶブログパーツ
http://se.koemu.com/

ブログ記事を取得して、記事間の共通性を計算して関連する記事をブログに表示するサービスの模様。

計算の元となるデータが登録されたブログのようなので、最初の頃は計算結果が微妙かもしれませんがなかなかおもしろそうなサービスで期待してます。

ただ、IEでみると表示されないのが残念・・・
表示用のjsが変わったようで現在は表示されてます。

後は登録データが増えるといい感じですねと使うだけの私は適当に言ってみる。

データ数が多いほどよい感じなサービスは、データ量が増えるとサービスを提供する側はなんかいろいろ大変そう。

APIも公開と言うことで表示部分は自分で作っても楽しそうですね。


全く関係ないのですが、このブログのCSSでなぜかmixiにアクセスしてた。
ブログへのアクセスでもmixiの方に足跡残したかったんだろうが
なんか気持ち悪いので削除した。
昔の自分の考えがよく分からんw
posted by Belial at 23:46 | Comment(0) | TrackBack(0) | その他 | このブログの読者になる | 更新情報をチェックする

2007年11月08日

プログラムの高速化

プログラムの話題と見せてコンビニネタ

計算量を減らすテクニックに前もって計算しとくというのがあります。

たとえば次のループ$hogeはなんか適当な数の配列で
count()は配列の要素数を返すとします。


for($i=0; $i<count($hoge); $i++){
なんか適当に処理
}

これはループ中毎回countを計算するのでデータ数が増えると塵も積もれば山となるって感じで徐々に遅くなります。
まぁもともと配列全部回すんで計算量はデータ量に比例して増えるんですけどね。

このループは下のほうにしたほうが早くなるはずです。
続きを読む
posted by Belial at 22:41 | Comment(0) | TrackBack(0) | その他 | このブログの読者になる | 更新情報をチェックする

2007年10月13日

このブログについてわかること

意外と皆さんJavaScriptでsubmitできない問題が気になってる。

ケミカルクッキングで調べてきたけど
大したこと書いてなくてガッカリ。

ちなみにJavaScriptでsubmitできないのは
submitって名前を持ったform部品があるからですが。

そんな部品ねーよと思ってふとみてみると
GETとかPOSTで送ってきたデータをすべて
hiddenで表示してたりする時はその中にsubmitってのがあるかも知れませんよ。
posted by Belial at 17:39 | Comment(0) | TrackBack(0) | その他 | このブログの読者になる | 更新情報をチェックする

2007年09月17日

実演!ケミカルクッキング

http://www.nicovideo.jp/watch/sm1053539

どこのご家庭にもある道具?で簡単においしい料理が作れちゃう!?

さめてもおいしい?つやつやごはんの炊き方
激安赤身肉を高級霜降りステーキに
醤油風調味料の作り方
果汁0%オレンジジュースの作り方
マツタケ風エリンギ


あ、図解アリエナイ理科ノ工作ってのが出てるぜ
買わなきゃwwww
posted by Belial at 11:33 | Comment(0) | TrackBack(1) | その他 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。