Мы использовали этот метод для обработки результата 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. Как мы можем это сделать?






попробуйте получить строку как массив:
$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), он ничего не показывает.
Это точно - тот же код, что и опубликованный OP, за исключением того, что вы изменили вызов OO ($result->fetch_assoc) на процедурный (mysql_fetch_array), который делает то же самое.
братан, я просто получил пример php.net secure.php.net/manual/en/function.mysql-fetch-array.php, и вы печатаете результат, который является объектом, поэтому вам нужна эта функция для извлечения этого объекта в строки,
Если вы хотите получить количество полей, вам действительно следует добавить COUNT (поле) в свой запрос. В противном случае вам придется перебрать весь набор результатов, чтобы получить счет.