Php mysql ищет, как проверить, нет ли результата

У меня есть этот код

require("connession.php");
$contabilita = "d";
$dataa = "10/12/2018";
$datam_0=explode("/", $dataa);
$datam = "".$datam_0[2];
$result = mysqli_query($con,"SELECT Max(n_ricevuta)+1 as max_ricevuta 
                            FROM corrispettivi_mod 
                            where anno='$datam' 
                            and contabilita='$contabilita'");
$row = mysqli_fetch_assoc($result);
if (mysqli_num_rows($result) > 0){
echo $row['max_ricevuta'];
}
else{echo "1";}

вот мой дб

data        anno    n_ricevuta  contabilita
2019-12-01  2019    1           nd

в моем db у меня есть только строка со значением поля 'anno' 2019, поэтому он должен печатать '1', но это не так.

если я изменю в базе данных поле anno со значением «2018», оно будет работать.

помогите мне спасибо

Покажите нам, пожалуйста, содержимое вашей таблицы

RiggsFolly 10.12.2018 20:39

Я правильно отформатировал?

RiggsFolly 10.12.2018 20:44

Не знаю, как его форматировать. если вы можете мне помочь, это будет оценено

user5351312 10.12.2018 20:45
$contabilita = "d";, но в базе есть contabilita = nd, попробуйте заменить $contabilita = "nd";
RiggsFolly 10.12.2018 20:47

Я бы хотел, чтобы он также печатал "1", когда не находил такое же значение contabilita. Поэтому, если anno или contabilita отличается от того, что находится внутри db, он должен вывести "1"

user5351312 10.12.2018 20:48
Стоит ли изучать 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
5
34
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

При использовании агрегатной функции, такой как max(), вы всегда будете получать строку, если нет соответствующей строки, она вернет null.

Итак, вам нужно изменить свой тест на ...

if ($row['max_ricevuta'] != null){
    echo $row['max_ricevuta'];
}
else {
    echo "1";
}

Как указывает RiggsFolly, стоит проверить значения, которые вы используете в тестировании, у вас есть

$contabilita = "d";

тогда как данные примера показывают nd.

Найджел, вы также можете добавить мой комментарий о $contabilita = "d"; but the database has contabilita = nd try changing $contabilita = "nd";. Просто чтобы ответить на этот вопрос.

RiggsFolly 10.12.2018 20:52

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