特定条件でのレコードの検索

PHP で DB を使うときに
特定の条件でレコードを検索するにはfind メソッドを使います
第1引数に検索のタイプ
第2引数にオプションの配列を指定します
まず、タイプについて
all
条件にあう全レコードを取得
first
条件にあう最初のレコードを取得
count
条件にあうレコードの数を取得
list
条件にあうレコードのリスト取得
neighbors
条件にあうレコードの前後のレコードを取得
threaded
ツリー構造でDBからレコード取得
続いて オプションについて
conditions
検索条件の配列を指定
recursive
再帰的に検索する深度を指定
fields
取得するフィールド名の配列を指定
order
文字列化配列で取得順序(並べ替え順)を指定
group
SQL文のGROUP BY 句と同じ
limit
取得するレコード数の指定
page
取得するページの指定
offset
何件目のレコードから取得するかを指定する

CakePHP のファイルの置き場所

ようやく、CakePHP を使ったDBへの接続ができるようになりました
今回、基礎から学ぶ facebookアプリ開発
を購入し、アプリ作成の勉強をしていたのですが
CakePHP の導入でかなり手間をとってしまいました
ちなみに、画像入りだと

CakePHP を使って今回サンプルを実行したのですが
ファイルの置き場所について載っていなかったので
ちょっとメモしておきます
ubuntu の場合になりますが
cakephp 1.3系をダウンロードして
unzip コマンドで解凍
unzip cakephp-cakephp-1.3.14-0-g5ac77c2.zip
次に、解凍したディレクトリを
mv コマンドを使って
cakephp に名前を変更します
mv cakephp-cakephp-822a1e0 cakephp
次に、ドキュメントルートへ このディレクトリを移動
sudo cp -rp cakephp /var/www/
vim cakephp/app/config/core.php
で、
Security.salt の文字列を変更
Security.ciperSeed も 文字列を変更します
cp database.php.default database.php
で設定ファイルを作成し
vim database.php
CakePHP DB接続情報の設定
のときと同じように再度設定します
chmod -R 777 /var/www/cakephp/app/tmp/
でパーミッションを変更すれば
無事に使えるようになります
続いて、cakephp のファイルの置き場についてです
/var/www/cakephp/app/controller/

shoots_controller.php
を配置
mkdir /var/www/cakephp/app/view/shoots
でディレクトリ作成して
ここへ
savescore.ctp
を配置します
これで、ゲームを開始
スコアが新記録を更新すると、DBへ反映され、facebook のウォールへ
投稿しますか?
と聞かれます
ここで投稿すると、自分のウォールに投稿されるようになります
動作確認として
自分のfacebook のウォールで投稿メッセージの確認
そして
phpMyAdmin へログインして
DBの更新時間が変更されていれば成功です
今回は不本意ながら
ver 1.3x 系で行いました
スキルを上げ、ver2.0系でも再現できるようにしてみようと思います
サーバー構築やプログラミングを勉強する場合
最初のうちは再現性を保つため、書籍や資料などと同じ環境を
構築することをおすすめします
私自信、過去にかなりこれではまりましたので….

cakePHP 1.x と 2.x の違いについて

facebook アプリを作成するため、
CakePHP と enchant.js の勉強をしています
今日は、CakePHP についてはまったので
その解決のためのメモです
書籍によれば、CakePHP ver 1.3 を使っていたのですが
最新版になれたほうがいいかな? と思って 2.0 を使いました
そもそも、これがはまった原因ですが…
DB接続する処理がまったく行われていないため
検索してみた結果
どうやら ver 1.x 系と ver 2.x 系では異なる点が多くあるようです
参考サイトは
cakephpの2.0と1.3系違いを比較してみた
cakephp1.x系で作られたWebサイトをcakephp2.0系へ移植する際のまとめ
です
キャメル記法を使うこと
(最初の文字を大文字にすること、アンダースコアの直後1文字を大文字にすること)
e()関数が使えなくなり
echo関数を使うことになる
ほかにもいろいろありますが
変更点が多く、対処できないため、一度 ver 1.x 系に戻そうと思います