Вы должны получить эту одну запись, она будет содержать результат Count ()
$result = $db->query("SELECT COUNT(*) FROM `table`");
$row = $result->fetch_row();
echo '#: ', $row[0];
Это хорошо сработало для меня.
// Veh Pro Count
$query_tvp = "SELECT count(*) as total from submit";
if ($result_tvp = $mysqli->query("$query_tvp")) {
/* determine number of rows result set */
$total_tvp = $result_tvp->fetch_row();
$total_tvp = $total_tvp['0'];
/* close result set */
$result_tvp->close();
}
echo "Total: $total_tvp";
Всегда пытайтесь сделать ассоциативную выборку, таким образом вы можете легко получить то, что хотите, в результате нескольких случаев
Вот пример
$result = $mysqli->query("SELECT COUNT(*) AS cityCount FROM myCity")
$row = $result->fetch_assoc();
echo $row['cityCount']." rows in table myCity.";
$result->close();
Я нахожу этот способ более читабельным:
$result = $mysqli->query('select count(*) as `c` from `table`');
$count = $result->fetch_object()->c;
$result->free();
$mysqli->close();
echo "there are {$count} rows in the table";
Не то, чтобы у меня что-то против массивов ...
$ result-> num_rows; возвращает число строк, затронутых запросом. Когда вы выполняете счет (*) в таблице, он возвращает только одну строку, поэтому у вас не может быть другого результата, чем 1.
Для меня это работает, когда вы хотите подсчитать повторяющиеся элементы внутри регистра.
Например: число людей, которые отмечают «да» в форме.
table: users
register: vote
элемент регистра: yes / no
$sql_user = "SELECT COUNT(*) FROM users WHERE vote = 'yes'";
$result1 = $mysqli->query($sql_user);
$row1 = $result1->fetch_row();
$n_yes = $row1['0'];