Ai pessoal vou por o link com o documento completo, já que são várias linhas: < https://1drv.ms/u/s!Aoarfwtvq-7Rg74XGsDOrGsQGgTgHg >

O problema é na linha do while, ele roda uma vez, mas não continua e retorna erro... Pelo que entendi o erro é que não posso colocar um fetch dentro de um outro fetch. Queria saber uma alternativa para fazer o programa fazer o mesmo: Pegar todos os CPF's do banco de dados, fazer uma consulta no banco e ver com cada CPF cadastrado se a ultima compra (mais recente) faz mais de 90 dias e fazer a função de update

O código principal é esse ai que vou colar aqui em baixo, mas ele e todo o resto está no link do começo...

while($dado1 = $sql ->fetch(PDO::FETCH_ASSOC)) // roda o programa abaixo para todos os CPF's { $sql = $pdo ->prepare //seleciona tudo da tabela procli. Também calcula a diferença da data mais recente de compra até hoje (" select *, max(prcl_DATAcompra),timestampdiff(day,prcl_DATAcompra,'2019-10-05 18:05:56') as prcl_DiferencaD from procli where prcl_CPFclientes = :a "); $sql -> bindValue(":a",$dado1['cli_CPF']); $sql ->execute();

if($sql -&gt;rowCount() &gt; 0) { $valor = $sql-&gt;fetch(); $diferenca = $valor['prcl_DiferencaD']; //seleciona a diferenca entre a data masi recente e a de hoje if($diferenca &gt; 90) { $sql = $pdo -&gt;prepare (" update clientes set cli_CPFrepresentantes = 0 where cli_ID = :b "); // atualiza o campo da chave estrangeira para o valor nulo (0) $sql -&gt;bindvalue(":b",$dado1['cli_ID']); $sql -&gt;execute(); echo "funciono"; } } }

perguntou Jan 10 às 19:39

giritexa's gravatar image

giritexa
21

editou Jan 11 às 21:47

Bem como ngm respondeu e eu achei a solução, decidi compartilhar pq na minha pesquisa achei algumas pessoas com o mesmo problema e que ngm ofereceu a solução.

Bem a minha solução foi de criar um arquivo extra ( class ) que engloba todo o código dentro do while.... e recebe o ID e CPF do fetch (pdo::tetch_assoc)... Tem a mesma função e não da erro.

link permanente

respondeu Jan 11 às 21:52

giritexa's gravatar image

giritexa
21

Esse fetch() tem que retornar apenas uma linha?

link permanente

respondeu Jan 14 às 18:40

callazzans's gravatar image

callazzans ♦
451210.7k

Sua resposta
mudar para preview

Siga esta pergunta

Por Email:

Uma vez que você entrar você poderá se inscrever para todas as atualizações aqui

Por RSS:

Respostas

Respostas e Comentários

Markdown Básico

  • *italico* ou __italico__
  • **negrito** or __negrito__
  • link:[texto](http://url.com/ "Qual é a sua dúvida?")
  • imagem?![alt texto](/path/img.jpg "Qual é a sua dúvida?")
  • lista numerada: 1. Foo 2. Bar
  • para adicionar uma quebra de linha basta adicionar dois espaços onde você gostaria que a nova linha estivesse.
  • tags HTML básicas também são suportadas

Tags

×166
×47
×18

pergunta feita: Jan 10 às 19:39

pergunta lida: 0 vezes

última alteração: Jan 14 às 18:40