prrrrrrr
@prrrrrrr
Верстаю сразу на PHP.

Как по API подсчитать и вывести кол-во записей из БД?

Подскажите, как сделать подсчёт записей по API в БД и вывести число на экран?
По примеру как в MySql: mysqli_num_rows

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
	if (this.readyState == 4 && this.status == 200) {
		console.log(this.responseText);
		jsonObject = JSON.parse(this.responseText);
            let html = ''
            for (let key in jsonObject.records) {
            html += '<p>Уведомление</p>' + jsonObject.records[key].title;
            }
		    document.getElementById('output').innerHTML = html;
	}
};
xhttp.open("GET", "https://site.com/api.php/records/badge", true);
xhttp.send();
</script>
<div id="output"></div>
  • Вопрос задан
  • 447 просмотров
Пригласить эксперта
Ответы на вопрос 2
deepblack
@deepblack
Вопрос необходимо конкретизировать. В чем именно сложность и с каким API?

Для того чтобы получить количество записей из БД, у API должен быть соответствующий endpoint.
К которому необходимо обратиться и получить ссответствующее значение.
Например обращаясь к
https://people.zoho.com/people/api/employee/counts?authtoken=<token>

Получаем ответ:
{
  "response": {
    "message": "Success",
    "result": {
      "RecordCount": 3280
    },
    "status": 0,
    "uri": "/api/forms/department/getRecordCount"
  }
}


UPDATE 1:
Имея такую структуру JSON:
{
  "records": [
    {
      "id": "1",
      "msg": "Success"
    },
    {
      "id": "2",
      "msg": "Failed"
    },
    {
      "id": "3",
      "msg": "In progress"
    },
    {
      "id": "4",
      "msg": "Pending"
    }
  ]
}


Получить количество объектов:
const obj = JSON.parse(...);
const recordsLength = Object.keys(obj.records).length;


И еще раз повторюсь:
API должно отдавать количество записей, не надо это делать на клиенте.


UPDATE 2:
Почему в тегах вопроса нет JavaScript?
Данный вопрос, в той формулировке в которой он есть никаким образом не касается API.
Ответ написан
alex-1917
@alex-1917
Если ответ помог, отметь решением
API должен выдавать количество запрошенных записей, если нет, API-фуфло!
На клиенте считаем ручками, без вариантов:
<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
   console.log(this.responseText);
  jsonObject = JSON.parse(this.responseText);
   var size = 0;
   let html = ''
   for (let key in jsonObject.records) {
      html += '<p>Уведомление</p>' + jsonObject.records[key].title;
      size++;
   }
   document.getElementById('output').innerHTML = html;
   //тут можно ловить size
  }
};
xhttp.open("GET", "https://site.com/api.php/records/badge", true);
xhttp.send();
</script>
<div id="output"></div>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы