PHP проверить, не осталось ли результатов без использования функции rowCount - PullRequest
0 голосов
/ 09 марта 2020

Обычно для проверки количества записей, извлекаемых из базы данных, мы используем функцию rowCount при использовании PDO с PHP. Тем не менее, я застрял в случае, когда я хочу получить тот же результат для использования в операторе if...else, но не могу его использовать, и ниже я объясню пример кода.

Нормальный случай:

$stmt = $pdo->prepare("SELECT * FROM table");
$stmt-> execute();
$count = $stmt->rowCount();

if($count > 0){    
    while($row = $stmt->fetch()){
        // Perform a task....
    }
}

Или мы также используем SELECT COUNT(*) as cnt FROM table, а затем используем fetch для элемента count.

Однако проблема в моем случае заключается в том, что я не могу использовать эти методы, потому что они будут возвращать count значение запроса root, который был выполнен. И здесь у меня есть условие if, которое при выполнении загружает результат, и я хочу подсчитать общее количество записей, удовлетворяющих этому условию.

Например:

$stmt = $pdo->prepare("SELECT * FROM table");
$stmt-> execute();

while($row = $stmt->fetch()){
    // Suppose I have a variable $distance which I calculated and based on that the result should appear
    if($distance < 100){
        // Display the records which satisfied this condition
        // Once the records are fetched, NOW I WANT TO COUNT THEM under "this" condition. 
        // This count will be based on the condition above which will be different from the root count using `rowCount`

        if($count == 0){
            // Perform a task here
        }
    }
}  

Как считать количество записей, удовлетворяющих условию if($distance < 100)? Любая помощь будет оценена.

1 Ответ

0 голосов
/ 09 марта 2020
$count = 0;
while($row = $stmt->fetch()){
    if($distance < 100){
        $count++;
        // display records 
    }
}  

if($count == 0){
     // Perform a task here
}

Вы можете просто посчитать записи, используя l oop, как показано выше. Я предполагаю, что вы сделали bind_result из $display. За пределами l oop, если вы найдете count = 0, тогда выполните желаемое задание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...