Squeak.ru - шаблоны программирования

Получить все данные за один вызов базы данных и отфильтровать их в контроллере - Codeigniter?

Я работаю над веб-приложением, где на странице есть 3 разных раздела, в которых должны отображаться некоторые данные типа x, y и z соответственно.

В базе данных есть таблица (userinfo) с двумя столбцами (данные, тип (x, y, z))

Текущий дизайн:

На pageLoad у меня есть 3 разных метода в контроллере и модели для получения данных x, y и z. пример: getxdata, getydata, getzdata.

Способ 1:

  $query= $this->db->query("SELECT *
            FROM userinfo
            WHERE type=x
         ");

Метод 2:

  $query= $this->db->query("SELECT *
            FROM userinfo
            WHERE type=y
         ");

Способ 3:

$query= $this->db->query("SELECT *
        FROM userinfo
        WHERE type=z
     ");

Там я делаю 3 вызова db на одной странице, что может вызвать проблемы с производительностью.

Я ищу:

$query= $this->db->query("SELECT *
        FROM userinfo
        WHERE type in ('x','y','z')
     ");

Есть ли способ сделать один вызов, как указано выше, а затем в контроллере я мог бы фильтровать данные на основе значений столбца type, используя цикл for ?? (Мне нужно отображать данные на странице в разных разделах в зависимости от типа данных)

Есть ли способ сделать это в codeigniter?

И я также приветствовал бы предложения о том, какой метод будет дружественным к производительности!

Спасибо за помощь.


  • What I am looking for is: в этом разделе ваш запрос полностью верен, поэтому сделайте это, а затем отфильтруйте по типу. Или вы можете просто изменить запрос следующим образом: -$query= $this->db->query("SELECT * FROM userinfo"); 30.05.2017
  • @AlivetoDie Да. Но как мне отфильтровать его в php? Мне нужно отображать данные в разных разделах страницы в зависимости от типа данных. 30.05.2017
  • Получите весь контент из базы данных с помощью вышеуказанного запроса (Alive to Die) и во время отображения просто проверьте условие if, например if(content==x){//display} тот же самый элемент формы 30.05.2017
  • @pAsh Я знаю, как это сделать вручную. Я ищу любые предопределенные методы, чтобы сделать это более эффективно в CodeIgniter. 30.05.2017

Ответы:


1

Да, вы можете использовать array_filter для фильтрации типов x, y и z. как,

$query= $this->db->query("SELECT *
        FROM userinfo
        WHERE type in ('x','y','z')
     ");
return $query->result_array();

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

$xArr = array_filter($result, function($k) {
    return $k['type'] == 'x'; // same for y and z
}
30.05.2017
Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...