2010年12月23日木曜日

【DBから値を取得し、lccのニュースを作成する】lcc-hikaku.jp公開に向けて-10

前回cronで自動的にDBにニュースを入れてくれるプログラムを書いた。
今まではsimplepieで直接viewに書き込んで使用していたが、今度は、cake側でDBから持ってきたものを表示する。

方法は

コントローラでfind('all')→viewに渡す
viewで側で配列の大きさをとって、idの末尾を知り、最新のものを表示する。→ループで3つまでを表示。

で、書いてみたら動いた。


<?php

//配列の大きさをとって、idの末尾を知り、最新のものを表示する。
$count = count($lcchikaku_news); //配列の数を数える
$count = $count - 1; //idは1からなのに対し、配列は0からなので、1引く
$i = 0;

while ( $i <= 3 ) {

 $count = $count - $i;
 //echo $lcchikaku_news["$count"]['Lcchikaku_news']['title'] . "\n";
 echo $html->link( $lcchikaku_news["$count"]['Lcchikaku_news']['title'], $lcchikaku_news["$count"]['Lcchikaku_news']['url']);
 echo '<p style="padding-left: 30px;">';
 echo $lcchikaku_news["$count"]['Lcchikaku_news']['summary'] . '  (' . $lcchikaku_news["$count"]['Lcchikaku_news']['regtime'] . ')';
 echo '</p>';

 $i++;
}
?>



が、イケてない・・・。おそらくメソッドとかで末尾のidを知る方法とか、findに条件つけて最新の5つだけをとるって方法があるんだろうが、時間がなかったので、超高速で知ってるものの組み合わせで作ったらこうなってしまった。

後々勉強していったら作り直そうと思います。

一点注意。赤文字になってる通り、変数を配列のkeyに設定するときはダブルコーテーション””が必要。
これはphpの注意点らしい。理由とかは

http://webcache.googleusercontent.com/search?q=cache:PDCIKkRfnOsJ:perltips.twinkle.cc/php/map_hash_array.php+%E9%85%8D%E5%88%97+key+php%E3%80%80%E5%A4%89%E6%95%B0&cd=4&hl=ja&ct=clnk&gl=jp&lr=lang_ja

http://search.net-newbie.com/php/language.types.array.html

に記載されている。

ひとまず、動いたので、今回はここまで。

0 件のコメント:

コメントを投稿