A non-numeric value encountered

@joeltonsilva
Saudações, amantes do Scriptcase!
Eu tenho variáveis no banco de dados em Float, fiz esse tratamento:

if($a_nr_n==null || $a_nr_de==null || $a_nr_on==null){
//sc_alert("");
$d9="";
$d10="";
$d11="";

}else{
	$d9=($a_na_n/$a_nr_n)*100;
	$d10=($a_na_de/$a_nr_de)*100;
	$d11=($a_na_on/$a_nr_on)*100;
}

No banco, eu permito que ele grave null para não preencher com zero no form.
Em localhost, tudo funciona perfeitamente. Mas, depois de publicado, dá esse erro:

A non-numeric value encountered

Alguém tem alguma ideia de como ultrapassar esse erro?

Olá Belmiro, estou enfrentando o mesmo problema… conseguiu achar a solução ?

1 Curtida

Bom dia,

Por acas o valor dessas variáveis estão vazias?

O que ocorre, é que no Php 7.3 ele não calcula o campo vazio, ou seja, ele não atribui 0 para os campos vazios de forma automática.

Eu atualizei meu sistema e enfrentei o mesmo problema e resolvi da seguinte maneira, tinha o campo de desconto e coloquei o valor inicial com 0 (Zero) pois se o usuário não informasse ele ficava vazio e dava a mensagem de erro. Após esta alteração tudo resolvido.

1 Curtida

Qual a melhor solução: informar 0 (zero) inicial no Banco de Dados ou na Aplicação?

Att.
André

Boa noite,
Também estou com esse problema em várias aplicações.
Se é uma característica da nova versão do php a NetMake poderia nos orientar qual seria a melhor solução…
Voltei para a 7.0 para esperar alguma correção.

Obrigado

Yuri alguma maneira de corrigir isso por que tenho um projeto grande olhar cada aplicao e faze isso e a mesma coisa de iniciar o projeto novamente…alem disso eventos ajax e formularios grid editavel e grid editavel view nao funcionam mais

Sim, consegui, irmão! Tive de pôr esses campos como NULL no banco de dados e fiz tratamente com if else para verificar se elas estavam com ou sem valor. Caso não estivessem com valor, eu punha as variáveis como $exemplo=NULL, mas ao com para se estava vazia eu fiz if($exemplo==null){
$exemplo=NULL
}else{
o código que gera os dados…
}