[Codeigniter-users] 簡単なモデルの利用

Back to archive index

kunitsuji tsuji****@m-s*****
2008年 7月 17日 (木) 19:55:00 JST


 kunitsujiです。

まず。

>表示しないので間違ってるのですが、
>	function get_computer_redate($cu_id)
>	{
>		$this->db->where('cu_id', $cu_id);
>		$query = $this->db->get('computer');
>		$row = $query->row();
>		if ($row->redate == NULL){
>			echo 'なし';
>		}
>		else
>		{
>			echo $row->redate;
>		}
>	}

これは、単純に$row->redateの中身がひょうじされていると考えられます。
日付形式ではなく、timestampではないでしょうか?DBのカラムの定義。

>A PHP Error was encountered
>
>Severity: Notice
>
>Message: Undefined variable: redate_post
>
>Filename: views/pc_list.php
>
>Line Number: 45
>といったエラーが表示されています。

この部分ですが、pc_listビューで、redate_postという変数が初期設定されてい
ませんというエラーです。
if($redate_post)
{
$data['redate_item'] = $row->redate;
}
else
{
$data['redate_item'] = 'なし';
}
として判定していますが、
$data['redate_post'] = "なにか";
っていうのがないので、
<?=form_prep($redate_post);?>
ではエラーですね。
ここでは
<?=form_prep($redate_item');?>
とするのが正しいのではないでしょうか?


>ここでこの判定をしてるという事はコントローラーでの判定は余計なんでしょう
>か?ちょっと混乱してきました(^^;)
これですが、
function get_computer_redate($cu_id)
	{
		$this->db->where('cu_id', $cu_id);
		$query = $this->db->get('computer');
		$row = $query->row();
		if ($row->redate == NULL){
			echo 'なし';
		}
		else
		{
			echo $row->redate;
		}
	}
としているので値が返っていませんね。
この場合
echo ではなく
return としなければなりません。
ここではどうするのがいいかというと
get_comXXXXXXX
ですから、値をGETするんだ、と仮定すると
if ($row->redate == NULL){
	return FALSE;
}
else
{
	return $row->redate;
}

ダとおもいます。
で、コントローラで
if($redate_post)
{
$data['redate_item'] = $row->redate;
}
else
{
$data['redate_item'] = 'なし';
}
としている部分ですが、
このままでもいいし
if($redate_post)
{
$data['redate_item'] = $redate_post;
}
else
{
$data['redate_item'] = 'なし';
}
とするかでしょうか。




Codeigniter-users メーリングリストの案内
Back to archive index