Как мы можем посчитать количество записей и показать в остальных API? - PullRequest
0 голосов
/ 30 мая 2019

контроллер:

<?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"
    }
]

}

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

Спасибо

Ответы [ 3 ]

2 голосов
/ 30 мая 2019

Ваш результат уже является массивом, поэтому используйте функцию 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);
}
0 голосов
/ 30 мая 2019

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

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);
    }
0 голосов
/ 30 мая 2019

Попробуйте, нет необходимости использовать 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...