コードイグナイター

正規化したテーブル 入出力

正規化したテーブル 入出力

正規化した二つのテーブルに、データを入力、出力します。

コードイグナイターで表示させます。

 

【はまった部分】

・正規化の方法

・FKの制約方法(phpmyadminで)

・DATETIME型への変換

・正規化テーブルへのインサート

 

 

ソースコード

【必要ファイル】

controllers/zyuku_input03.php

form/my_form02.php

models/zyuku_model.php

 

■application/controllers/zyuku_input03.php

<?php

class Zyuku_input03 extends CI_Controller {

public function __construct(){
parent::__construct();
$this->load->database();
}

public function index(){

$this->load->helper(array('form','url'));
$this->load->model('zyuku_model');//表示のスクリプトが書いてある
$this->load->model('zyuku_input_model');
$this->load->library('form_validation');
$this->form_validation->set_error_delimiters('<p class="error_red">', '</p>');


//値が入っていた場合、こちらのviewを表示する
$this->form_validation->set_rules('school_names', '塾名', 'required',array('required' => '%s は必須です。'));
$this->form_validation->set_rules('kana', 'カナ', 'required',array('required' => '%s は必須です。'));
$this->form_validation->set_rules('room_id', '教室id', 'required',array('required' => '%s は必須です。'));
$this->form_validation->set_rules('room_names', '教室名', 'required',array('required' => '%s は必須です。'));



if ($this->form_validation->run() == FALSE){

//バリデーションのエラー値を持ち越しながら、viewに移動する
$this->load->view('form/my_form02');

}else{

//バリデーションが大丈夫だった時の処理

$this->load->helper('date');


//先に子テーブルに入力をする(正規化されているので)
$zyuku_input_data02= array(
'room_id'=>$this->input->post('room_id'),
'room_names'=>$this->input->post('room_names')
);

$this->db->insert('zyuku_kyositu_table',$zyuku_input_data02);

//その後、親テーブルに登録をする。
$zyuku_input_data= array(
'school_names'=>$this->input->post('school_names'),
'kana'=>$this->input->post('kana'),
'room_id'=>$this->input->post('room_id'),
'create_times'=>unix_to_human(time(), TRUE, 'eu')// 秒ありのヨーロッパ形式 usかeuのどちらかにする。
);
$this->db->insert('zyuku_table',$zyuku_input_data);

//var_dump($zyuku_input_data);
// exit();
$this->load->view('form/formsuccess');
}
}
}

 

 

■application/form/my_form02.php

<!--ここでエラーメッセージ出る。何もない場合はnullで処理してくれる 勝手にPタグも入れてくれる。凄すぎる^^;-->
<?php //echo validation_errors();?>
<?php echo form_open('zyuku_input03'); //コントローラーを指定しています。?>


<?php echo form_error('school_names'); ?>
<h5>塾名:<input type="text" name="school_names" value="<?php echo set_value('school_names'); ?>" size="30" /></h5>

<?php echo form_error('kana'); ?>
<h5>カナ:<input type="text" name="kana" value="<?php echo set_value('kana'); ?>" size="30" /></h5>

<?php echo form_error('room_id'); ?>
<h5>教室id: <input type="text" name="room_id" value="<?php echo set_value('room_id'); ?>" size="30" /></h5>
<?php echo form_error('room_names'); ?>
<h5>教室名: <input type="text" name="room_names" value="<?php echo set_value('room_names'); ?>" size="30" /></h5>

<div>
<p><input type="submit" value="Submit" /></p>
</div>

</form>

 

ここで入力します。

 

 

■models/zyuku_model.php

<?php
class Zyuku_model extends CI_Model {

public function __construct(){
//DBに接続する
$this->load->database();
}


//get_allという関数を作る
public function get_all(){
$query=$this->db->get('zyuku_table');
//$query=$this->db->query('SELECT id,school_names,kana FROM zyuku_table');

//配列で取り出す。DBからのデータは配列で取り出す
foreach($query->result() as $row){
echo '<p>'.$row->id.':'.$row->school_names .' ('.$row->kana .')' .'</p>';//ここで表示を作って、単純表示させている
}
return $row;//エクセルをイメージするとよい。ドロンと変えるために書く
}

//get_zyukuという関数を作る
public function get_zyuku(){

$zyuku_query=$this->db->get('zyuku_table');
//$this->db->get('zyuku_table');=SELECT * FROM zyuku_table
foreach ($zyuku_query->result() as $zyuku)
echo $zyuku->id;
//return $row;

}

public function get_zyuku02(){
//正規化前 zyuku_tableからだけ、データを持ってくる

//$zyuku_query02=$this->db->get('zyuku_table');
//https://codeigniter.jp/user_guide/3/tutorial/news_section.html を見本にすると良い
//クエリにすると良い
$zyuku_query02=$this->db->query('SELECT id,school_names,room_id FROM zyuku_table;');
//$this->db->get('zyuku_table');=SELECT * FROM zyuku_table
return $zyuku_query02->result_array();
//結果を配列で返す
}

public function get_zyuku03(){
//正規化した2つのテーブルから、クエリを投げて、データを取得する。
//zyuku_table と zyuku_kyositu_table room_idで結合

$zyuku_query03=$this->db->query('
SELECT * FROM zyuku_table
INNER JOIN zyuku_kyositu_table
ON zyuku_table.room_id=zyuku_kyositu_table.room_id;');

return $zyuku_query03->result_array();
//結果を配列で返す
}
}

 

モデルにクエリ文章を書く事で、コントローラのソースコードが簡単になります。

 

 

【ポイント】

・INNER JOINについて

・DATETIME型

・子、親テーブルへの入力順序

・ユニックスのタイムスタンプをDATETIME型に変える

 

無料で質問・ご相談いただけます、ぜひご連絡くださいませ。

 

 

コードイグナイターの勉強方法

 

■ フレームワーク ■

フレームワークは何を使ったらいいのか?

ララベルとは?

コードイグナイターとは?

オートロードとは

無名関数とは?

MVCとは何か?

 

■ オブジェクト指向■

クラス・インスタンス・プロパティ

オブジェクト指向とは?

 

 

 

 

この記事を読んだ人は、こんな記事も読んでいます

 

SEO対策の基本 外部要因とは?

SEO対策の基本的である、外部要因とは何か?

SEO対策をするなら絶対に知っておきたい、基本知識です。

 

売れるサイトを作るのに知って起きたい知識

サーチエンジンマーケティングという言葉をご存知でしょうか?

ホームページで商品やサービスを売る時に知っておきたいマーケティング

についてご紹介いたします。

seo対策をするメリットとは

SEO対策をする5つのメリットとは?

なぜ上位表示させることが大事なのか?なぜSEO対策をする必要があるのか

についてご紹介させていただきます。

 

内部要因とは

SEO対策の内部要因とは?

上位表示させるためには、内部要因について知っておくことも大事です。

キーワードを上位表示させるために必要なのは、ソースコードを最適化することです

内部要因の対策について知りたい方はこちらへ

 

キーワード対策をするまえに

キーワード対策をする前に

そのキーワード対策。ちょっと待ってください。

そのまま対策をすると、必ずお金を損してしまいます。個人事業主や中小企業は

そんな大きなキーワードで対策をしてはいけません。

広告費用が高くなる理由とは

広告費用が高くなる本当の理由とは?

売れないサイトに集めていませんか?広告費用がかかるわりには

お問い合わせが少ない・・・と感じる方は多いはずです。

購入率の悪いサイトに集客をしている可能性があります。

 

 

 

 

【SEO対策・web広告・webコンサルティングのプラスワーク対応エリアについて】

プラスワークでは、東京、神奈川、千葉、埼玉を中心に全国でwebコンサルティング、SEO対策、ホームページの更新、ホームページのリニューアル運営代行をしております。売上アップをお考えならお気軽にご相談ください。

 

【SEO対策・web広告・webコンサルティングのプラスワーク 対応地域】

北海道 [ 北海道 ]

東北  [ 青森 | 岩手 | 山形 | 福島 | 秋田 | 宮城 ]

関東  [ 東京 | 埼玉 | 千葉 | 茨城 | 栃木 | 群馬 | 神奈川 ]

甲信越 [ 山梨 | 長野 | 新潟 ]

北陸  [ 石川 | 福井 | 富山 ]

東海  [ 愛知 | 静岡 | 岐阜 | 三重 ]

近畿  [ 大阪 | 兵庫 | 京都 | 滋賀 | 奈良 | 和歌山 ]

中国  [ 島根 | 山口 |鳥取 | 広島 | 岡山 ]

四国  [ 徳島 | 香川 | 愛媛 | 高知 ]

九州  [ 福岡 | 佐賀 | 長崎 | 熊本 | 大分 | 宮崎 | 鹿児島 ]

プラスワークでは全国でSEO対策、ホームページ更新、制作をしております。中小企業専門SEO対策・ホームページ更新制作会社、ダイレクト レスポンス マーケティング、ウェブ マーケティング、マーケティング 分析、口コミのよいSEO対策会社をお探しならプラスワークにお任せくださいませ。

 

 

【コンテンツ】

トップへ

更新レスキュー

料金について

制作実績

お客様の声

よくある質問

会社概要

お問い合わせ

【更新レスキュー】

ライトコース

ゴールドコース

プラチナコース

 

【その他】

ニュース

メルマガ登録

特別資料プレゼント

相互リンク募集中

【課題から探す】

ホームページの課題

SEO対策とは

SEO対策がダメな理由

上位表示されない理由

相互リンクとは

順位が落ちてしまう原因

 

 

フェイスブック  ツイッター