2010 11月 ITかあさん

ITかあさん

Jquery ページャー 色々試してみた

Jqueryが三度のメシより好きとは言い過ぎですが、確実にうちの旦那よりは好きです。
今日はJquery ページャーを色々試してみたいと思います。

jquery.pager.js

このページャーの特徴は、$(“#pager”).pager(“div”); と仮に書くと、divで囲った部分でページ遷移します。

jquery

<script src="../js/jquery.pager.js"›</script›
<script›
$(document).ready(function(){
$("#pager").pager("div");  
});
</script›

HTML


<div id="pager"›
<div>
<p>ああああ</p>
<p>ああああ</p>
<p>ああああ</p>
<p>ああああ</p>
</div›

<div>
<p>ああああ</p>
<p>ああああ</p>
<p>ああああ</p>
<p>ああああ</p>
</div›

<div>
<p>ああああ</p>
<p>ああああ</p>
<p>ああああ</p>
<p>ああああ</p>
</div›
</div›

ページャーを実行したい全体を、<div id=”pager”›</div›で囲ってページを区切りたいところをさらに<div›で囲う。

超静的なページでちょっとページングをしたい時にサクッと実装できるお手軽ページャーです

ORDER BY で0を以外でソートする

今まで登録順にしか表示順を取っていなかったが、新たにsortフィールド(int)を追加し、デフォルト値を0にして、sortフィールドの数字でORDER BYしようと思ったときのメモ。(長い。)0を除外してソートしたいわけです。

問題だったのが普通に

ORDER BY sort;

って書いても、0が上に来てしまう。1、2、3とちゃんと入力した数字が上に来るようにしてほしい。と、いうことで、

 ORDER BY sort >0 DESC,sort

先に0より大きい数字DESCでソートして、もう一度ソート。2回に別けたらうまくいきました。

CakePHP データベース接続

まずは開発用のテーブルを作成します。

まずPHPmyadminより、テーブル作成しました。
CakePHPで初めてのDB操作なので、最小限に留めました。
ちなみにMySQL の文字コードは UTF-8 Unicodeです。

CREATE TABLE `facilities` (
`f_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(150) DEFAULT NULL,
`url` varchar(100) DEFAULT NULL,
PRIMARY KEY (`f_id`)
)

データベース作成後、サンプル表示用にデータを入力します。

CakePHP データベース利用の基本

データベース定義ファイルの作成

CakePHPでは データベースに関する情報(データベースの種類、ユーザー名、パスワード)をappフォルダの中のconfigフォルダに置くそうです。 

CakePHPをインストールした時に、app/config/ディレクトリ内にdatabase.php.defaultというファイルがあります。 

CakePHP データベース利用の基本

ファイル名をdatabase.phpと変更して、このファイルの下にデータベースに関する情報を入れるところがありますので、各自変更してあげるようです。


class DATABASE_CONFIG {

	var $default = array(
		'driver' => 'mysql',
		'persistent' => false,
		'host' => 'localhost',
		'login' => 'user',
		'password' => 'password',
		'database' => 'database_name',
		'prefix' => '',
	);

	var $test = array(
		'driver' => 'mysql',
		'persistent' => false,
		'host' => 'localhost',
		'login' => 'user',
		'password' => 'password',
		'database' => 'test_database_name',
		'prefix' => '',
	);
}

$test…というのは、テスト用のデータベースの設定なので、上の$defaultだけ設定すればいいそうです。
今回は一番ユーザーの多いMysqlを元に進めていきますので、変更するところは
・’login’ => ‘user’,
・’password’ => ‘password’,
・’database’ => ‘database_name’,
この3つだけです。各自環境にあわせて変更してください。
変更したら、さきほどのフォルダに再びアップロードします。(私は念のため、database.php.defaultは残しておきました。)
CakePHP データベース利用の基本

データベースへの接続チェック

database.phpをconfigフォルダにアップしたら、さっそくWEBページにアクセスしてみます。…どうでしょうか?
一見すると表示に変化はほとんどありませんが、ページ中間に、Cake is able to connect to the database.の記述が出れば接続成功です。
CakePHP データベース利用の基本

CakePHP インストール

CakePHPを本家サイトからダウンロードすることから始めていきましょう!

CakePHPのインストール

CakePHPのインストールは非常に簡単です。公開用のディレクトリにダウンロードしたCakePHPをフォルダごとまとめてアップするだけ。簡単ですね。

まずはCakePHPの公式サイトに行って、ダウンロードボタンをクリックします。

CakePHPのインストール

ダウンロードページに行くと、CakePHPのバージョン一覧が出てくる。

ここで注意したいのが、CakePHP 1.3.0-betaのように、数字の後ろに何か付いているものは安定版じゃないそうなので、それ以外のものをダウンロードするとよい。注意するのはそれだけ。私は1.3.5をダウンロードしました。

これがダウンロードした中身。後はこのフォルダの中身を公開ディレクトリにアップロードするだけ

で、アップしたディレクトリに対してブラウザでアクセスしてみます。

すると最上部に早速エラーが出ててきました。

出力されたエラーは以下

Warning (512): /home/sites/webmin/web/kodomo119/app/tmp/cache/ is not writable [CORE/cake/libs/cache/file.php, line 267]

Warning (512): /home/sites/webmin/web/kodomo119/app/tmp/cache/persistent/ is not writable [CORE/cake/libs/cache/file.php, line 267]

Warning (512): /home/sites/webmin/web/kodomo119/app/tmp/cache/models/ is not writable [CORE/cake/libs/cache/file.php, line 267]

is not writableというのは、書き込み権限に対するエラーですね。

/app/tmp/cache/って書いてあるので、ここのフォルダに書き込み権限が無いといっているわけですね。FFFTPやWinSCPを使って、パーミッションの変更を行います

同様にエラーの出ていた

/home/sites/webmin/web/kodomo119/app/tmp/cache/persistent/

/home/sites/webmin/web/kodomo119/app/tmp/cache/models/

この2つのディレクトリに対してもパーミッション『777』にしてあげたところ、エラーは無事でなくなりましたとさ!

インストールした先はこちら。

動画で今回の内容をまとめました

もっと大きくしてみたい方はこちらからどうぞ!

この本使ってます

先日会社で『フレームワークの本一冊購入したい』と言って、買ってきました。基礎からCakePHPについて説明してくれています。ある一定のPHP+Mysqlのサイト作成経験があればすんなり入っていけます。非常に読み進めやすく、いかにCakePHPが楽しいかを解説してくれていて読んでいて『早くCakePHPでサイト構築したい!』という気持ちになれます