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

`pq ele nao reconhece a data ?

Notice: Undefined variable: data in C:\xampp\htdocs\engfoa\tabelames.php on line 21

<?php include("cabecalho.php");?>
<?php include("conecta.php");?>
<?php
$data = $_GET["data"];

$queryx = "select sum(preco) as total from contaeng where data = '{$data}' ";
$retorno = mysqli_query($conexao, $queryx);
$total = mysqli_fetch_assoc($retorno);
?>
<center>

    <h3>Neste Mês:</h3>
<p class="alert-success">A empresa tem em caixa atualmente R$ <?= $total['total'] ?></p>
</center>
<?php

$data = $_GET["data"];

function listaProdutos($conexao) {
    $produtos = array();
    $resultado = mysqli_query($conexao, "SELECT nome, preco FROM contaeng where data = '{$data}' ");

    while($produto = mysqli_fetch_assoc($resultado)) {
        array_push($produtos, $produto);
    }

    return $produtos;

}
?>
<table class="table table-striped table-bordered">
<?php
 $produtos= listaProdutos($conexao);
 foreach ($produtos as $produto) {
     ?>
     <tr>
         <td><?=$produto['nome'] ?></td>
         <td><?=$produto['preco'] ?></td>
         <td><?=$produto['data'] ?></td>
     </tr>
     <?php
 }
?>

</table>

<?php include("rodape.php")?>
18 respostas

Augusto, tu tens um select, onde pega nome e preço.

Portanto podes te referenciar a

$produto['nome'] e $produto['preco']

mas não podes te referenciar a $produto['data']

Faz um teste: altera o teu select para

$resultado = mysqli_query($conexao, "SELECT nome, preco, data FROM contaeng where data = '{$data}' ");

Se der certo, podemos arrumar mais.

O erro que mencionei acima, não deve nem ter acontecido ainda.

Onde tu montas o $data?

Tem algum form onde a data é digitada?

Faz um echo $data, logo após $data = $_GET["data"];

o que ele mostra??

Se tens a variável $data com conteúdo, o teu problema é escopo.

A variável $data não está definida dentro da função listaProdutos.

Tu podes enviar para a função como parâmetro (desde que $data esteja realmente com conteúdo)

function listaProdutos($conexão, $data) {



    $produtos = array();
    $resultado = mysqli_query($conexao, "SELECT nome, preco FROM contaeng where data = '{$data}' ");

    while($produto = mysqli_fetch_assoc($resultado)) {
        array_push($produtos, $produto);
    }

    return $produtos;

}

E na chamada da função também altera

 $produtos= listaProdutos($conexão, $data);

sim , tenho um formulario e ele esta enviando certinho pois esta indo po get e da pr aver em cima da pagina, mas ele nao esta pegando.

Está assim, e ele esta vendo o total só nao esta mostrando a tabela pois fala que n achou a data.

<?php include("cabecalho.php");?>
<?php include("conecta.php");?>
<?php
$data1 = $_GET["data1"];
$data2 = $_GET["data2"];

$queryx = "select sum(preco) as total from contaeng where data >= '{$data1}' and data <= '{$data2}'";
$retorno = mysqli_query($conexao, $queryx);
$total = mysqli_fetch_assoc($retorno);
?>
<center>

    <h3>Neste Mês:</h3>
<p class="alert-success">Total de R$ <?= $total['total'] ?> neste mês!</p>
</center>
<?php

$data1 = $_GET["data1"];
$data2 = $_GET["data2"];

function listaProdutos($conexao, $data1, $data2) {
    $produtos = array();
    $resultado = mysqli_query($conexao, "SELECT nome, preco, data FROM contaeng where data >= '{$data1}' and data <= '{$data2}' ");

    while($produto = mysqli_fetch_assoc($resultado)) {
        array_push($produtos, $produto);
    }

    return $produtos;

}
?>
<table class="table table-striped table-bordered">
<?php
 $produtos= listaProdutos($conexao);
 foreach ($produtos as $produto) {
     ?>
     <tr>
         <td><?=$produto['nome'] ?></td>
         <td><?=$produto['preco'] ?></td>
         <td><?=$produto['data'] ?></td>
     </tr>
     <?php
 }
?>

</table>

<?php include("rodape.php")?>

A sua chamada para a function listaProdutos está incorreta - falta enviar as duas datas.

Qualo erro que dá?

Em qual linha?

copia a linha que dá erro, pois eu não sei qual n° delinha corresponde ao erro

Se tu garantes que $dat1 e $data2 tem valor, altera a chamada:

$produtos= listaProdutos($conexão, $data1, $data2);

Warning: Missing argument 2 for listaProdutos(), called in C:\xampp\htdocs\engfoa\tabelames.php on line 31 and defined in C:\xampp\htdocs\engfoa\tabelames.php on line 17

Warning: Missing argument 3 for listaProdutos(), called in C:\xampp\htdocs\engfoa\tabelames.php on line 31 and defined in C:\xampp\htdocs\engfoa\tabelames.php on line 17

Notice: Undefined variable: data1 in C:\xampp\htdocs\engfoa\tabelames.php on line 19

Notice: Undefined variable: data2 in C:\xampp\htdocs\engfoa\tabelames.php on line 19

linha 17 é

function listaProdutos($conexao, $data1, $data2) {

linha 19 é

 $resultado = mysqli_query($conexao, "SELECT nome, preco, data FROM contaeng where data >= '{$data1}' and data <= '{$data2}' ");

Você não leu o que falei...

Tem que chamar passando os argumentos...

a sua chamada à função listaProdutos deve ficar assim:

$produtos= listaProdutos($conexão, $data1, $data2);

fiz isso e nao deu

apos mudar isto o erro foi este Notice: Undefined variable: conexão in C:\xampp\htdocs\engfoa\tabelames.php on line 31

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\engfoa\tabelames.php on line 19

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\engfoa\tabelames.php on line 21

sendo as respectivas linhas:

linha 31=> $produtos= listaProdutos($conexão, $data1, $data2); linha 19 => $resultado = mysqli_query($conexao, "SELECT nome, preco, data FROM contaeng where data >= '{$data1}' and data <= '{$data2}' ");

linha 21 => while($produto = mysqli_fetch_assoc($resultado)) {

Você tem a variável $conexão definida?

Até ontem tinha.

Tanto que listava o total.

Continua mostrando o total?

Mexeste no include do conecta.php?

espero que você não esteja usando o til ~ em conexão...

dá uma olhada, rs

correto $conexao

errado $conexão

solução!

Pelo notice vc está usando $conexão (com til) Os outros erros decorrem daí.

Dá retorno, ok? Já tou tão ansioso quanto tu.

KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK que vergonha pqp

Puxa gastamos um tempão. É legal caçar erros, porque assim aprendo também.

Nesta aventura me lembrei do escopo.

Acho que nunca mais o php me pega nesta.

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