Использование count дает неправильное количество строк

Раньше я использовал этот код для подсчета строк

echo $db_handle->numRows("SELECT * FROM orders WHERE DATE(reattemptdate) = CURDATE()");

чем я обнаружил, что это влияет на представление, чем я пытался использовать приведенный ниже код, но он не дает правильного количества строк, что не так, я сделал в приведенном ниже коде?

$sqldelivery = "SELECT COUNT(*) as count FROM orders  WHERE DATE(reattemptdate) = CURDATE()";
$resultdeliverys = $db_handle->runSelectQuery($sqldelivery); 
$numrowsresultdelivery =count($resultdeliverys);         
echo $numrowsresultdelivery;

Код подключения к базе данных:

function numRows($query) {
        $result  = mysqli_query($this->conn,$query);
        $rowcount = mysqli_num_rows($result);
        return $rowcount;
    }

В нем отсутствует минимальный воспроизводимый пример.

melpomene 10.09.2018 09:16
1
1
112
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

У вас уже должен быть номер счета через $resultdeliverys->count.

$sqldelivery = "SELECT COUNT(*) as count FROM orders  WHERE DATE(reattemptdate) = CURDATE()";
$resultdeliverys = $db_handle->runSelectQuery($sqldelivery); 

// Try this to know if it's returning array or object
var_dump($resultdeliverys);
Ответ принят как подходящий

Во втором коде запрос всегда будет возвращать 1 строку - строку, в которой столбец count является количеством строк, поэтому ...

$numrowsresultdelivery =count($resultdeliverys);

Вероятно, всегда будет 1, вам нужно что-то вроде ...

$numrowsresultdelivery =$resultdeliverys[0]['count'];

для извлечения поля count из первой строки результата. (Обратите внимание, я не знаю, правильная ли это запись, но это принцип, согласно которому поле должно быть результатом, а не количеством результатов.)

Другие вопросы по теме