Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Erro Array to string conversion

Quando clico em salvar me aparece o seguinte erro Notice: Array to string conversion in C:\xampp\htdocs\aguasoft\funcoes.php on line 99

function insereFatura($conexao, $clientes_id, $hidrometro, $dataRef, $dadosCliente, $lAnterior, $lAtual, $consumo, $dataLeitura, $diaConsumo, $valorUnt, $valorTotal, $dataVencimento){
    $queryFatura = "insert into faturas (clientes_id, hidrometro, dataRef, dadosCliente, lAnterior, lAtual, consumo, dataLeitura, diaConsumo, valorUnt, valorTotal, dataVencimento) values ({$clientes_id}, {$hidrometro}, '{$dataRef}', '{$dadosCliente}', {$lAnterior}, {$lAtual}, {$consumo}, '{$dataLeitura}', {$diaConsumo}, '{$valorUnt}', '{$valorTotal}', '{$dataVencimento}')";
    return mysqli_query($conexao, $queryFatura);
}

Banco de dados

CREATE TABLE `faturas` (
  `idFatura` int(11) NOT NULL,
  `clientes_id` int(11) NOT NULL,
  `hidrometro` int(10) NOT NULL,
  `dataRef` date NOT NULL,
  `dadosCliente` text NOT NULL,
  `lAnterior` int(10) NOT NULL,
  `lAtual` int(10) NOT NULL,
  `consumo` int(10) NOT NULL,
  `dataLeitura` date NOT NULL,
  `diaConsumo` int(2) NOT NULL,
  `valorUnt` varchar(20) NOT NULL,
  `valorTotal` varchar(20) NOT NULL,
  `dataVencimento` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

html

<?php include("cabecalho.php");
include("conexao.php");
include("funcoes.php");

//$idCliente = $_GET['idCliente'];
//$cliente = pesquisaClientes($conexao);
?>

<div class="container">
    <header>
        <div class="row">
            <div>
                <h1 class="text-center text-info">Fatura de Água</h1>
            </div>
        </div>
        <table class="table">
            <td>
                <p class="text-center" >AguaSoft - Sistema de gestão de águas e esgoto<br/>
                Avenida Senador Caixa D'água, 1999, Água Potável, CEP 55999-000<br/>
                CNPJ: 12.345.678/0001-90 - Insc. Estadual: 12.345.678-90<br/>
                Contatos: (84)1234-5678 - contato@semsolução.com</p>    
            </td>
        </table>
    </header>
</div>

<div class="container">
   <form action="adiciona-fatura.php" method="post">
    <div class="row">
        <div class="col-md-6 col-md-push-3">

            <table class="table-condensed">
                <tr>
                    <!--<td class="col-md-4">N° NFE<input name="idFatura" class="form-control" type="number"></td>-->
                    <td class="col-md-4">Matricula<input name="clientes_id" class="form-control" type="number"></td>

                    <td class="col-md-4">Hidrômetro<input name="hidrometro" class="form-control" type="number"></td>
                    <td class="col-md-4">Referência<input class="form-control" type="text"  name="dataRef" id="data" value="<?php echo date("M/Y");?>"></td>
                </tr>
            </table>

           </div>
    </div>         

        <div class="row">
        <h3>Dados do Cliente</h3>
        </div>
        <div class="row">
            <table class="table">
                <textarea class="form-control" rows="6" name="dadosCliente">
                </textarea>
               </table>
        </div>
        <div class="row">
            <h3>Dados de Consumo</h3>
        </div>
        <div class="row">
        <table class="table">
            <tr>
                <td><label for="Hidrometro">Leitura Anterior</label>
                    <input class="form-control" name="lAnterior" type="number">
                </td>
                <td><label for="Hidrometro">Leitura Atual</label>
                    <input class="form-control" name="lAtual" type="number">
                   </td>
                <td><label for="Hidrometro">Consumo m³</label>
                <div class="input-group">    
                    <input class="form-control" name="consumo" type="number">
                    <span class="input-group-btn"><button class="btn btn-default" type="submit" name="calculaConsumo" value="somaConsumo">Caucular</button></span>
                  </div>
                   </td>
                   <td><label for="Hidrometro">Data Leitura</label>
                    <input class="form-control" name="dataLeitura" type="text" id="data" value="<?php echo date("d/m/Y");?>">
                   </td>
                   <td><label for="Hidrometro">Dias de Consumo</label>
                    <input class="form-control" name="diaConsumo" type="number">
                   </td>
            </tr>
           </table>
    </div>
    <div class="row">
        <table class="table">
            <tr>
                <td><label for="Hidrometro">Valor m³</label>
                    <input class="form-control" name="valorUnt" type="text" value=" R$ 3,50">
                </td>

                <td><label for="Hidrometro">Total a Pagar</label>
                    <div class="input-group">
                          <input type="text" class="form-control" name="valorTotal">
                          <span class="input-group-btn"><button class="btn btn-success " type="button" name="calculaVlt">Caucular</button>
                          </span>
                       </div>
                   </td>
                   <td><label for="Hidrometro">Data de Vencimento</label>
                    <input class="form-control" name="dataVencimento" type="date">
                   </td>
            </tr>
           </table>
    </div>
</div>
<div class="container">
            <div class="row">
                <div class="form-group">
                    <input name="cadastrar" type="submit" value="Emitir NFE" class="btn btn-info">
                    <button class="btn btn-danger" type="reset">CANCELAR</button>
                </div>
            </div>
</div>

    </form>


<?php include("rodape.php");
4 respostas

Oi Tacio, tudo certo?

Você pode compartilhar com a gente o arquivo C:\xampp\htdocs\aguasoft\funcoes.php mais especificamente a linha 99?

Aguardo retorno, abraço!

Isso deve estar ocorrendo porque alguma das variáveis que você está tentando salvar é um array.

Uma forma simples de repetir a mesma mensagem de erro é fazer o seguinte teste:

$teste = array('a', 'b', 'c');
echo ($teste);

Então, a função echo apenas recebe valores do tipo String, ou que sejam conversiveis para String.

Para imprimir o conteudo da sua variavel teste, tente passar por cada valor dela. Algo como:

foreach ($teste as $conteudo){
    echo($conteudo);
}
solução!

Problema resolvido

Refiz os dados da tabela faturas mudei apenas o cliente_id que estava como chave estrangeira ai deu certo

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software