2017-01-30 18 views
0

私はCodeIgniterとPHP全体を初めて使いました。私は1つのタスクで助けが必要です。 1つのテーブル内でデータベース要素をある場所から別の場所に移動するメソッドを作成する必要があります。CodeIgniter - データベース要素を移動

これは私のデシベルです:

CREATE TABLE test (
    section_id bigint(20) NOT NULL DEFAULT 0, 
    section_left bigint(20) NOT NULL DEFAULT 0, 
    section_right bigint(20) NOT NULL DEFAULT 0, 
    section_name varchar(255) CHARACTER SET utf8 DEFAULT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

少数の例では、照会:

INSERT INTO `test` (`section_id`, `section_left`, `section_right`, `section_name`) 
VALUES 
    (1,1,90,'Root'), 
    (2,2,3,'HOME'), 
    (197,42,43,'Autism Spectrum Disorder'), 
    (198,44,45,'Asperger Syndrome'), 
    (196,41,46,'Experiencing Disability'), 

ポイントに:私は私がある場所から別の場所に要素を移動することを可能にするメソッドを作成する必要がありますIDを変更して 私はそれがこのような何かを見てみたい:

move_element($elment_section_id, $destionation_section_id) 

例えば、コントローラは、次のようになります。

move_element(223, 196) 

問題は、私は本当に私のモデル関数がどのように見えるべきか見当がつかないということです。誰でも私を正しい解決策に導くことができますか?

答えて

0

あなたはそのIDを変更することで要素を移動する方法を作成したい場合、あなたはモデル関数でupdateのステートメントを探しています。

move_element($elment_section_id, $destionation_section_id) { 

    // sql this function needs to execute is: 
    // "update `test` set `section_id` = $destionation_section_id where `section_id` = $elment_section_id"; 

    // in codeigniter, you can do something like this : 
    $this->db->set('section_id', $destionation_section_id); // destination place 
    $this->db->where('section_id', $elment_section_id); // original place 
    $this->db->update('test'); //table name` 
} 

私はあなたの質問を正しく理解しました。そうでない場合は、親切にコメントしていただきたいと思います。

+0

こんにちは、このような高速返信に感謝します。 しかし、これは本当に私のためには機能しません。私はこれについて言及しなかったが、それはネストされたセットモデルにある。それでは、私が取得したいことは次のとおりです。 - 要素に関するすべての情報を取得する(SECTION_ID、section_left、section_rightとSECTION_NAME)、 は - そして、関数move_elementを($ elment_section_id、$ destination_section_id)を実行するので、それはそのSECTION_IDを変更し、自動に変更することができますname以外の$ destionation_section_idで接続されているセクションの他のセクション 私の例では:move_element(197、196)は私に結果を与えるでしょう:(196,41,46、 'Autism Spectrum Disorder') – qhr

関連する問題