У меня есть этот запрос, который возвращает список строк, а также количество времени, которое они повторяются, со столбцом TotalCount:
SELECT X,
COUNT(*) as TotalCount
FROM table
GROUP BY X HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC
Я выполняю этот запрос в PHPMyadmin:
[X] [TotalCount]
A 5
B 6
Я пытаюсь включить запрос в свой скрипт, но следующее дает мне «2»:
echo $result->num_rows;
Как получить «11» в PHP?
РЕДАКТИРОВАТЬ:
Мой запрос:
$sql="SELECT X,
COUNT(*) as TotalCount
FROM table
GROUP BY X HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC
";
$result = $conn->query($sql);
echo $result->num_rows;
Я пытаюсь сделать что-то вроде
echo $row[TotalCount];
Исходная таблица
[X]
A
A
A
A
A
B
B
B
B
B
B
Код ведет себя правильно, он возвращает 2
потому что у вас есть 2 ряда. Вы на самом деле хотите значения этих строк, поэтому вам нужно получать объект результата.
$sql="SELECT X,
COUNT(*) as TotalCount
FROM table
GROUP BY X HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC
";
$result = $conn->query($sql);
while($row = $result->fetch_array())
{
echo $row['TotalCount'] . PHP_EOL; // or '<br />' if in a browser;
}
Других решений пока нет …