У меня есть этот код
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», оно будет работать.
помогите мне спасибо
Я правильно отформатировал?
Не знаю, как его форматировать. если вы можете мне помочь, это будет оценено
$contabilita = "d";, но в базе есть contabilita = nd, попробуйте заменить $contabilita = "nd";Я бы хотел, чтобы он также печатал "1", когда не находил такое же значение contabilita. Поэтому, если anno или contabilita отличается от того, что находится внутри db, он должен вывести "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";. Просто чтобы ответить на этот вопрос.
Покажите нам, пожалуйста, содержимое вашей таблицы