2014年03月21日

[PHP] 平均値を求める

今回はCakePHPではなく、普通のPHPライブラリを使用する。

<?php
$speed = array(10.463,12.44,11,25.7,18,5.067);
$total = array_sum($speed);
$average = round($total/count($array),2);
?>

array_sum()で配列の合計値を求めて、countで配列数を数えて割り算している。
roundは、計算結果を小数点有効桁数2桁で四捨五入している。

各関数の説明

関数名

説明

array_sum() 配列の中の値の合計を計算する
count() 配列の要素を数える
round() 浮動小数点を丸める

もし、切り捨てで計算したいなら、roundで第3引数を以下のように指定すれば良いみたい。

$average = round($total/count($array),2,PHP_ROUND_HALF_DOWN);

参考

タグ:PHP
posted by lute at 22:00| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする

[CakePHP2.x] find(‘all’)で条件を指定して抽出する方法

Blogチュートリアルだと、find('all')で、postsテーブルにあるデータを全部引っ張ってきている。

<?php
class PostsController extends AppController {
    public $helpers = array('Html', 'Form');

    public function index() {
        $this->set('posts', $this->Post->find('all'));
    }
}
?>

しかし、条件で絞り込んで検索したいときはある。
というので、id=1のブログ記事のみ抽出し、降順で検索結果を返すやり方。

<?php
class PostsController extends AppController {
    public $helpers = array('Html', 'Form');

    public function index() {
        $conditions = array(
            'conditions' => array(
                'Post.id' => 1
                ),
            'order' => array(
                'Post.title' => 'desc',
                )
        );
        $this->set('posts',$this->Post->find(‘all‘,$conditions));
    }
}
?>

上記は1つしか引っかからないので、全然実用的ではないが、conditionsをfind()の引数で指定できる。「order」で、'asc'を指定すれば昇順になる。

and条件で複数指定したい場合は、以下のように複数記載すれば良い。

$conditions = array(
        'conditions' => array(
            'Post.id' => 1,
            'Post.Title' => 'test'
        ),
    );

参考

データを取得する[CakePHP]

タグ:PHP cakephp 検索
posted by lute at 21:29| Comment(0) | TrackBack(0) | CakePHP | このブログの読者になる | 更新情報をチェックする

[CakePHP2.x] チュートリアルのBlogを作ってみる

と言っても、CakePHPサイトのブログチュートリアルをそのまま辿れば特に問題なく出来た。
これだと、流石に書くこと無さすぎるので、写経そのままして、よく分からなかったり、ハマったりした所を書いておく。

命名規約

CakePHPは、名前でそれぞれがマッピングされるようにできている。
公式サイトの規約にも説明があるのだが、表でまとめると以下の感じ。

名前とファイル名の関係

Database
(table名)

Model

Controller

View

名前 posts Post PostsController

-

ファイル名

-

Post.php PostsController.php /Model/Posts/の下に置いたファイル

上記のような関係になっている。大文字/小文字や、Modelだけ複数形が単数形になるのが分かりにくい気がするんだが、英語圏の人は普通なのかね。

単語が2つ繋がってたり、複数のテーブルを結合するのは、また別の機会に。

CakePHPはPHPだ

おまえは何言ってるんだという感じだが、最初分からなかったので。
Model.phpを作成すると思うんだけど、チュートリアルに以下のように記載されているんだよね。

class Post extends AppModel {
}

んで、そのまま書くと画面に「class Post extends AppModel」とか表示されてるし、何だこれ?と思ってた。
PHPの構文で囲んでいなかったからだー、と気づいたのは後になってから。

<?php
class Post extends AppModel {
}
?>
タグ:PHP cakephp
posted by lute at 15:59| Comment(0) | TrackBack(0) | CakePHP | このブログの読者になる | 更新情報をチェックする
×

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