Как создать условие из результата MySQL

Мы использовали этот метод для обработки результата MySQL:

$sql = "SQL query here";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        //--- do something for each row
    }
}

у меня вопрос, как мы можем создать условное выражение внутри while, связанного с $result, например:

$sql = "SQL query here";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {

        $client_name = $row['client_name'];
        //-- step 1 : count how many 'client_name' in $result
        //-- step 2 : IF more than 5, do something...

    }
}

Моя проблема в том, что когда я пытался использовать print_r($result), он дает мне только:

mysqli_result Object ( [current_field] => 0 [field_count] => 15 [lengths] => [num_rows] => 11606 [type] => 0 )

а я хочу выполнить «поиск и подсчет» с этим [num_rows] => 11606. Как мы можем это сделать?

Если вы хотите получить количество полей, вам действительно следует добавить COUNT (поле) в свой запрос. В противном случае вам придется перебрать весь набор результатов, чтобы получить счет.

Nick 01.05.2018 09:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
38
1

Ответы 1

попробуйте получить строку как массив:

$sql = "SQL query here";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
 while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {

    $client_name = $row['client_name'];
    //-- step 1 : count how many 'client_name' in $result
    //-- step 2 : IF more than 5, do something...

   }
}

Я пытался использовать ваш код, братан ... но похоже, что что-то не так с: while ($ row = mysql_fetch_array ($ result, MYSQL_ASSOC)), потому что после этого я пытался использовать print_r($result), он ничего не показывает.

Saint Robson 01.05.2018 08:40

Это точно - тот же код, что и опубликованный OP, за исключением того, что вы изменили вызов OO ($result->fetch_assoc) на процедурный (mysql_fetch_array), который делает то же самое.

Nick 01.05.2018 09:09

братан, я просто получил пример php.net secure.php.net/manual/en/function.mysql-fetch-array.php, и вы печатаете результат, который является объектом, поэтому вам нужна эта функция для извлечения этого объекта в строки,

Omar Abu Omar 01.05.2018 09:30

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