0

以下を正しく機能させようとしています。else は正しく動作していますが、if 部分で問題が発生しています。行を削除し、行に 0 を挿入していhottest_catます。からの値を挿入する必要があります$dd。私が間違っていることについてのアイデアはありますか?

public function change_category() {
        $dd = $this->input->post('dd');
        $sql = $this->db->get('default_hottest_cat');
        if ($sql->num_rows() > 0) {
            $row = $sql->row(); 
                $old = $row->hottest_cat;
                // Stuff is found in this table. Needs to be deleted first, then inserted.
                $this->db->delete('default_hottest_cat', array('hottest_cat' => $old));
                $this->db->insert('default_hottest_cat', array('hottest_cat' => $dd));
        } else {
            // Nothing is found in this table. Needs only to be inserted.
            $this->db->insert('default_hottest_cat', array('hottest_cat' => $dd));
        }
    }
4

1 に答える 1

0

あなたは私が答えた問題に非常に似ています。詳細については、これを確認して ください ID が既に存在するかどうかを確認する方法 - codeigniter

ロジックは

1.Select "the database table" with the value you had posted.(search)
2.Check the count of result_row(if found >0 , if not found =0)
3.If not found  'insert', if found 'update',( in your case delete)

モデル

<?php
    class Cars_model extends CI_Model
    {   
        function __construct()
        {
            parent:: __construct();
            $this->load->database();
        }

         function check()
         {
            $query=null; //emptying in case 

            $dd= $_POST['dd'];    //getting from post value

            $query = $this->db->get_where('default_hottest_cat', array('dd' => $dd)); ၊၊၊။။//making selection
            $count= $query->num_rows();    //counting result from query

        if ($count === 0)  // data is not present
        {  
               $data = array(
                 'dd' => $dd
            );
           $this->db->insert('default_hottest_cat', $data); 
        }
           else //data is present
          {
               $this->db->delete('default_hottest_cat', array('dd'=>$dd));
           }
         }     
    }

?>
于 2013-04-22T20:02:14.400 に答える