Я пытаюсь получить общее количество стран, введенных в моем дБ. Очевидно, что некоторые из них будут дублировать, поэтому мне не нужно общее количество строк, а общее количество стран. Так, например:
Russia -> 5
USA -> 10
Canada -> 6
Mexico -> 12
В этом наборе данных число, которое я бы попытался получить, равно 4.
Прямо сейчас у меня есть этот запрос:
$query = mysqli_query($con, "SELECT COUNT(id) AS countCnt, country FROM users GROUP BY country ORDER BY COUNT(id) DESC");
то я повторяю значения запроса:
while($row = mysqli_fetch_assoc($query)) {
$country = $row['country'];
$countryCount = $row['countCnt'];
$countries[$country] = $countryCount;
}
$country_text = array_keys($countries);
$country_count = array_values($countries);
Как я могу вернуть общий граф стран из $country_text
? Я хочу присвоить это число переменной $ x.
Любая помощь будет оценена по достоинству.
Поскольку вы являетесь группой GROUPING BY, количество строк, в которые возвращается ваш запрос, будет числом стран. Так
$x = mysqli_num_rows($query);
Альтернативой является использование подзапросов:
SELECT COUNT(*) as total FROM(
SELECT COUNT(id) AS countCnt, country FROM users
GROUP BY country ORDER BY COUNT(id) DESC
)
http://php.net/manual/en/function.array-unique.php
$country_text = array_unique($countries);