Может ли функция count () работать для получения количества строк с определенным именем? - PullRequest
0 голосов
/ 03 октября 2018

У меня есть такие типы таблиц:

id     cat
_________

1        A

2        B

3        A

4        A

5        B

, и код, который я использую для запроса к базе данных, выглядит примерно так:

$query="SELECT*FROM types";

$res=myslqi_query($conn,$query)

while($row=myslqi_fetch_assoc($res){



          if($row['cat']==A){

               echo count($row['cat'];   

               };

}; 

Я получаю ошибку с этим типомкода с помощью функции count ().

Возможно ли, чтобы insted отображался как AAA вместе, чтобы можно было отображать цифру как 3, что я просто хочу?

1 Ответ

0 голосов
/ 03 октября 2018

Возможно ли, чтобы insted отображался как AAA вместе, чтобы можно было отображать число как 3, что я просто хочу

иметь возможность отображать общее количество значений в 'кошачье поле только в виде числа.Таким образом, если есть три значения с A, то результатом будет просто число 3

Попробуйте

<?php
$rows = [
 ['id'=>1, 'cat'=>'A'],
 ['id'=>2, 'cat'=>'B'],
 ['id'=>3, 'cat'=>'A'],
 ['id'=>4, 'cat'=>'A'],
 ['id'=>5, 'cat'=>'B']
];


print_r( array_count_values( array_column($rows,'cat') ) );

Выход

Array
(
   [A] => 3
   [B] => 2
)

Песочница

Где значение - это число вхождений каждого «кота»

Я не знаю, если это то, что вы хотите, но это похоже на магию .. Нет, это былошутка, это всего лишь код.

Array Column возвращает только значения из одного столбца в многомерном массиве, поэтому для этого примера он возвращает

[
   'A',
   'B',
   'A',
   'A',
   'B'
]

Затем значения подсчета массива подсчитывают всевхождения каждого значения в один массив, и дает нам результат шоу в начале.

Для этого вам нужны полные результаты данных из базы данных, так что вы можете получить их все с помощью этого while($row=myslqi_fetch_assoc($res){ и добавить каждую строку к результату $rows[] = $row в цикле, или вы можете просто сделать $rows =mysqli_fetch_all($res,MYSQLI_ASSOC)

http://php.net/manual/en/function.array-column.php

http://php.net/manual/en/function.array-count-values.php

Конечно, вы также можете сделать это только в MySQL

SELECT count(id) as total FROM types GROUP BY cat.

Но что угодно ...

Ура, надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...