【CI】ログインしたユーザーの情報を取得したい

ログインしたユーザーの情報を取得したいとき。
codeigniterであればdx系の関数で簡単に取得ができる。

//ログインしているユーザーのユーザーID取得
$this->dx_auth->get_user_id();

//ログインしているユーザーのユーザー名取得
$this->dx_auth->get_username();

//ログインしているユーザーのロールID取得
$this->dx_auth->get_role_name();

//ログインしているユーザーの管理者判別
$this->dx_auth->is_admin();

//ログイン判別
$this->dx_auth->is_logged_in();

また、パーミッションを使えば、
ログインしないと閲覧できないページを設定することができる。

//パーミッション
$this->dx_auth->check_uri_permissions();


【CI】文字数を制限したい

文字数を制限したいとき。

「limiter」を使う。

limiter($v['title'],100);

第一引数で値を設定、
第二引数で制限したい文字数を設定する。

ちなみに、マルチバイト文字(カナなど)も1文字として数える。

limiter(`あいうえおかきくけこ`,5);
//「あいうえお」まで表示

limiter(`abcdefghij`,5);
//「abcde」まで表示


【CI】SQLに入れた値のidを取得したい

SQLに入れた値のidを取得したいとき。

「$this->db->insert_id();」を使う。

//usersへ追加
$sql = "INSERT INTO `users` (
								`role_id` , 
								`username` , 
								`password` , 
								`email` , 
								`banned` , 
								`last_ip`, 
								`created` , 
								`modified` 
							) VALUES (
								'$role_id' , 
								'$username' , 
								'$password_enc' , 
								'$email' , 
								'$banned' , 
								'$ip' , 
								NOW() , 
								 NOW() 
							);";
$q = $this->db->query($sql);
$insert_id = $this->db->insert_id();

ここでいう「id」とは、INSERT文に書いてあるidではない。
SQLに入れた際にAUTO_INCREMENT(自動連番付け)されるidのことを指す。

そのため、SQLに入れた直後に、入れたばかりの値のidを取得するファンクション (=$this->db->insert_id();)
が必要になる。


【CI】年月日を表示したい

DBから年月日を表示したいとき。

「mysqldatetime_to_date」を使う。

<?=mysqldatetime_to_date($v['date'] , "Y年m月d日");?>


第一引数で値を設定、
第二引数で表示方法を設定している。

時間も表示したいときなどは下のように書けばよい。

<?=mysqldatetime_to_date($v['date'] , "Y年m月d日 H時i分s秒");?>

表示方法の調整は以下を参考にすればOK。
PHP: date – Manual


セレクト値

セレクト値の書き方いろいろ。

ヘルパーなどにつなげても良い。



//セレクト値
$d['opt_year'] 		= number_options("_" , 1920 , mdate("%Y" , time()) + 1);
$d['opt_month'] 	= number_options("_",1,12,TRUE);
$d['opt_date'] 		= number_options("_",1,31,TRUE);
$d['opt_hour'] 		= number_options("_",0,23,TRUE);
$d['opt_minute'] 	= number_options("_",0,59,TRUE);
$d['opt_pref'] 		= pref_options('選択');