Как мы можем подсчитать количество записей и показать их в остальных API?

контроллер:

<?php
    require APPPATH . '/libraries/REST_Controller.php';
    use Restserver\Libraries\REST_Controller;
    class User extends REST_Controller 
    {   
        function country_get()
        {
            $this->db->select('id,name');
            $this->db->from('countries');
            $sql = $this->db->get();
            $result = $sql->result_array();
            $this->response($result, 200);
        }
    }

неожиданный вывод:

[
    {
        "id": "1",
        "name": "Afghanistan"
    },
    {
        "id": "2",
        "name": "Albania"
    },
    {
        "id": "3",
        "name": "Algeria"
    },
    {
        "id": "4",
        "name": "American Samoa"
    },
    {
        "id": "5",
        "name": "Andorra"
    }
]

ожидаемый результат:

{
"Message": "Number of Country found: 5",
"Status": "Success",
"Country": [
    {
        "id": "1",
        "name": "Afghanistan"
    },
    {
        "id": "2",
        "name": "Albania"
    },
    {
        "id": "3",
        "name": "Algeria"
    },
    {
        "id": "4",
        "name": "American Samoa"
    },
    {
        "id": "5",
        "name": "Andorra"
    }
]

}

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

Спасибо

просто используйте count() или вы также можете использовать счетчик mysql.

Devsi Odedra 30.05.2019 12:40

использовать функцию подсчета count($result)

Mehdi 30.05.2019 12:40
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
1 469
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Ваш результат уже представляет собой массив, поэтому используйте функцию PHP count(), чтобы получить длину массива:

function country_get()
{
   $this->db->select('id,name');
   $this->db->from('countries');
   $sql = $this->db->get();
   $result = $sql->result_array();

   $response = [
       "Message" => "Number of Country found: " . count($result),
       "Status" => "Success",
       "Country" => $result
   ];

   $this->response($response, 200);
}

Попробуйте это, нет необходимости использовать count() CI уже дает вам счет в num_rows()

function country_get()
{
     $this->db->select('id,name');
     $this->db->from('countries');
     $sql = $this->db->get();
     $count = $sql->num_rows();
     $result = array();
     $result['Message'] = "Number of Country found: " . $count;
     $result['Status'] = "Success";      
     $result['Country'] = $sql->result_array();
     $this->response($result, 200);
}

замените свою функцию следующим кодом:

function country_get()
   {
         $this->db->select('id,name');
         $this->db->from('countries');
         $sql = $this->db->get();
         $res = $sql->result_array();
         $result['Status'] = "Success";
         $result['Message'] = "Total country found ".count($res);
         $result['Country'] = $res
         $this->response($result, 200);
    }

Другие вопросы по теме