PHP 'Count', отображающий несколько единиц, а не общее значение - PullRequest
1 голос
/ 06 марта 2019

Я вызываю данные из базы данных SQL на PHP, и я хочу иметь возможность подсчитать количество определенных значений, которые я извлекаю из базы данных, я могу получить определенное значение и получить, скажем, 20 значений, когда я пытаюсьчтобы получить 'Count' этих значений, он будет отображать 20 '1, так что "11111111111111111111" вместо "20".

Я попытался распечатать его и ввести его в таблицу, и ни один из них не выдаетрезультат, который я хочу.

Мой код ниже:

date_default_timezone_set('Europe/London');
$conn = new mysqli("xxx.xxx.xxx","title","password","title");
if (!$con){
    {exit("Connection Failed: " . $con);}
    //Connecting to the (DB) Database
}


<?php
if (isset($_POST['submit'])){
?>
<table>
<tr><td><strong>Count</strong></td></tr>
<?php
$start=$_POST['start'];
$end=$_POST['end'];

$sql="SELECT Data.Items ".
//Selecting the required data from the table
$sql="FROM Data ";
//Selecting FROM the Table(s) required


$reports = $con->query($sql);

while ($report = $reports->fetch_object()){
    $result = count ($report->Items);

    echo count ($result);

    echo "<tr><td>".$report->Items."</td></tr>";
}

?>

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Это потому, что вы используете функцию count в цикле при извлечении каждой строки.Каждая строка имеет 1 элемент (который даже не массив).Вы должны использовать

echo $reports->num_rows; 

перед циклом while.

0 голосов
/ 06 марта 2019

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

Вы можете сделать это с помощью array_count_values ​​()

$items = [];
while ($report = $reports->fetch_object()){
 $items[] = $report->Items;
}

if (! empty($items)) {
 $numOccurances = array_count_values($items);
 foreach ($numOccurances as $val => $count) {
   echo "<tr><td>" . $count . " times </td><td> => ".$val."</td></tr>";
 }
}

Пример вывода:

4 times     => item 1
2 times     => item 2
1 times     => item 3
1 times     => item 5
2 times     => item 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...