Несколько MySQL запрос в CI

0

Там у меня несколько запросов и вы хотите выполнить в Codeigniter. Ниже приведен код, который я пробовал.

  function seememberfilter($course,$n)
        {


        $this->load->database();
        $sql = array();
        $sql[] = "CREATE TEMPORARY TABLE temp1";
        $sql[] = "select id,rand, name,lname, email,phone from 'member' where course like ('%$course%')";
        $sql[] = "CREATE TEMPORARY table temp2";
        $sql[] = "select distinct t.id,t.rand, t.name,t.lname, t.email,t.phone, a.quest_id from temp1 t left join assignment a on t.rand= a.rand";
        $sql[] = "CREATE TEMPORARY table randid";
        $sql[] = "select rand, quest_id from temp2 where quest_id=$n";
        $sql[] = "select t.id,t.rand, t.name,t.lname, t.email,t.phone, r.quest_id from temp1 t left join randid r on t.rand= r.rand";

         foreach ($sql as $sql_command)
            {    
                if ($debugging == 0)
                {
                    $this->db->query($sql_command);
                } 
                elseif ($debugging == 1)
                {
                    echo $sql_command;
                } 
            } 
return $query->result();

        }

Выше код находится в модели и ниже код находится в контроллере

 public function assign(){
            $this->load->model("user_model");
            $course=$this->input->post('course');
            $n=$this->input->post('id');
            $data['sel'] = $this->user_model->seememberfilter($course,$n);  
            $this->load->view('assign',$data);
        }

mysql-запрос выполняется хорошо в phpmyadmin. я проверил это

Я хочу: я хочу успешно выполнить mysql-запрос в CI.

Я редактирую это и даю вам полную таблицу sql table

DROP TABLE IF EXISTS 'member';
CREATE TABLE IF NOT EXISTS 'member' (
  'id' int(11) NOT NULL AUTO_INCREMENT,
  'rand' varchar(255) NOT NULL,
  'email' varchar(255) NOT NULL,
  'name' varchar(255) NOT NULL,
  'lname' varchar(255) NOT NULL,
  'phone' varchar(255) NOT NULL,
  'dob' varchar(255) NOT NULL,
  'course' text NOT NULL,
  'gender' varchar(255) NOT NULL,
  'address' varchar(255) NOT NULL,
  'city' varchar(255) NOT NULL,
  'state' varchar(255) NOT NULL,
  'zip' varchar(255) NOT NULL,
  'comment' text NOT NULL,
  'Aboutme' text NOT NULL,
  'dat' varchar(255) NOT NULL,
  'tim' varchar(255) NOT NULL,
  PRIMARY KEY ('id')
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;



INSERT INTO 'member' ('id', 'rand', 'email', 'name', 'lname', 'phone', 'dob', 'course', 'gender', 'address', 'city', 'state', 'zip', 'comment', 'Aboutme', 'dat', 'tim') VALUES
(1, 'jrf20180961828', '[email protected]', 'Kishan', 'Yadav', '9717111111', '2018-09-01', 'paper first,Political Science,Philosophy,', 'male', 'Diamond Auto Mobiles', 'Belthara road', 'ballia', '221715', 'Good person.', '', '06-09-2018', '11:24:16pm'),
(2, 'jrf20180914721', '[email protected]', 'Rohan', 'Yadav', '9717111111', '2018-09-01', 'paper first,Philosophy,History,', 'male', 'Diamond Auto Mobiles', 'Belthara road', 'ballia', '221715', 'Good Person.', '', '06-09-2018', '11:25:44pm'),
(5, 'jrf20180958284', '[email protected]', 'kiran', 'Singh', '9717111111', '2018-07-07', 'paper first,Political Science,History,', 'female', 'Diamond Auto Mobiles', 'Belthara road', 'ballia', '221715', 'nnbmnm', '', '10-09-2018', '10:11:34pm'),
(4, 'jrf20180932851', '[email protected]', 'Pankaj', 'Yadav', '9717111111', '2018-09-01', 'paper first,Philosophy,Psychology,History,', 'male', 'Diamond Auto Mobiles', 'Belthara road', 'ballia', '221715', 'nmbmbn', '', '10-09-2018', '10:10:19pm'),
(6, 'jrf20180929250', '[email protected]', 'John', 'Corter', '9717111111', '2018-09-06', 'paper first,History,', 'male', 'Diamond Auto Mobiles', 'Belthara road', 'ballia', '221715', 'sxs', '', '11-09-2018', '12:09:49am');
COMMIT;

И вторая таблица

DROP TABLE IF EXISTS 'assignment';
CREATE TABLE IF NOT EXISTS 'assignment' (
  'id' int(11) NOT NULL AUTO_INCREMENT,
  'rand' varchar(255) NOT NULL,
  'course' varchar(255) NOT NULL,
  'quest_id' varchar(255) NOT NULL,
  'time' varchar(255) NOT NULL,
  'date' varchar(255) NOT NULL,
  PRIMARY KEY ('id')
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;



INSERT INTO 'assignment' ('id', 'rand', 'course', 'quest_id', 'time', 'date') VALUES
(1, 'jrf20180914721', 'paper first', '2', '10:05:48pm', '2018-09-10'),
(2, 'jrf20180961828', 'paper first', '2', '10:06:49pm', '10-09-2018'),
(3, 'jrf20180914721', 'History', '2', '10:08:03pm', '10-09-2018'),
(4, 'jrf20180958284', 'History', '2', '10:12:05pm', '10-09-2018'),
(5, 'jrf20180914721', 'paper first', '1', '10:19:23pm', '10-09-2018'),
(6, 'jrf20180932851', 'History', '3', '12:07:48am', '11-09-2018');
COMMIT;

И мой вывод должен быть таким, я присоединяюсь к двум таблицам, чтобы получить этот вывод. Прикрепленное изображение моего вывода

Я получаю этот вывод, используя указанный выше запрос. Извините за мой английский.

  • 0
    Какую проблему вы в конечном итоге пытаетесь решить? Или это просто абстрактное упражнение по созданию временных таблиц без особой причины?
  • 0
    У меня есть две таблицы, и я хочу преобразовать их в одну таблицу таким образом, чтобы я мог найти всех людей, которые прошли курс А, и задать вопрос 2 & null. Вот почему мне нужен временный стол.
Показать ещё 2 комментария
Теги:
codeigniter

2 ответа

0

Вы можете использовать транзакцию для разделения выполнения запроса

$this->db->trans_start();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');
$this->db->trans_complete(); 
  • 0
    Я использовал этот метод, и он работает благодаря @dhara
  • 0
    добро пожаловать ... одобрите этот ответ, чтобы он мог помочь и другим.
0

После чата в db-скрипке:

select distinct t.id, t.rand, name, lname, email, phone, if(quest_id='2','2',NULL) as quest-id
from 'member' t
left join assignment a on t.rand= a.rand
where t.course like '%History%'
    and (a.course like '%History%') or a.id is null

Член, ограниченный курсом, назначением того же курса, квеста (иона) _id 2 отображается, если он был найден, в противном случае оставить поле как NULL.

  • 0
    Это не работает. Я отредактировал свой вопрос с полными деталями.
  • 0
    редактируется со структурой: можете играть здесь, пока длится ссылка.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню