Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcones Borges

Erro Trying to get property of non-object in

Recommended Posts

Boa tarde, estou com um erro Trying to get property of non-object in 

 

Gostaria da ajuda de alguém!! 

 

 

// Recebe o termo de pesquisa se existir
$termo = (isset($_GET['termo'])) ? $_GET['termo'] : '';

// Verifica se o termo de pesquisa está vazio, se estiver executa uma consulta completa
if (empty($termo)):
//if (!empty($id_cliente) && is_numeric($id_cliente)):

    // Captura os dados do cliente solicitado
    $conexao = conexao::getInstance();
    $sql = 'SELECT id, funcao, n_resolucao, data_automatica, nome, lugar, novo_campo, tipo FROM bd_trans';
    $stm = $conexao->prepare($sql);
    $stm->execute();
    $clientes = $stm->fetchAll(PDO::FETCH_OBJ);
    if(!empty($cliente)):

    endif;

endif;

 

<?php if(!empty($clientes)):?>
<table width="640" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td colspan="2"><p><br />
      </p>
      <p><strong>RESOLUÇÃO Nº. <?=$cliente->n_resolucao?>
        
      / <?php echo date("Y");?></strong></p>
      <p><strong>                 Texto se segue :</strong></p></td>
  </tr>
 
  <?php foreach($clientes as $cliente):?>
  <tr>
  
    <td width="32">01.</td>
    <td width="563"><?=$cliente->funcao?>
      <?=$cliente->nome?>
      , de
      <?=$cliente->lugar?>&nbsp;
para<?=$cliente->novo_campo?>
;</td>
  </tr>
  <?php endforeach;?>
</table>
<?php endif ?>



os outros campos mostra tudo ok, exceto <?=$cliente->n_resolucao?> que da este erro Trying to get property of non-object in 

Outra coisa, como eu faço para ele gerar um numero para cada linha?
Ex> 1. ----

       2.----

       3. ------

 

Baseado no numero de registros que ele vai puxar do BD.

 

Grato pela ajuda de já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável $client só existe dentro do escopo do foreach. O código que está dando erro está fora do foreach.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certeza que deve exibir fora do foreach? Pois, o escopo do foreach é exibir cada um dos clientes.

 

Por qual motivo você deve exibir a resolução de um cliente fora do escopo dele? Qual é o critério? Pois, fora do foreach, você exibirá a resolução de apenas um cliente e não da lista.

Compartilhar este post


Link para o post
Compartilhar em outros sites

reset()

 

Vai resetar o ponteiro e retornar o primeiro item do array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem uma lista de cliente. Retorne o primeiro cliente e imprima o valor que você quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fica muito fácil entregar pronto, uma das ideias do fórum é fomentar o aprendizado.

 

Basicamente você tem uma lista.

$array = [1 , 2 , 3 , 4];

Você tem que retornar o primeiro valor apenas. Isso pode ser feito de algumas formas. 

 

A mais simples é:

$var = $array[0];
echo $var; // 1

Outra é usando reset:

$var = reset($array);
echo $var; // 1

 

Você possui uma lista de objetos. Basta retornar o primeiro e imprimir do jeito que já imprime.

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 minutos atrás, Marcones Borges disse:

Bom dia, desculpa amigo se estou errando...

 

Não há mal algum em errar, está aqui justamente para aprender.

 

Vamos lá:

- No seu código não existe a variável $n_resolucao;

- A variável que é uma lista/array é a variável $clientes.

 

Ou seja, no código abaixo, o nome da variável $n_resolucao está errado:

$var = $n_resolucao[0];

 

Já para a impressão, esta abaixo não irá funcionar:

 <?php echo($var);?> 

Pois, o resultado retornado da lista ($clientes) é um objeto. Logo, ele deve ser tratado como tal, que é o que você faz no código abaixo:

<?= $cliente->n_resolucao; ?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 minutos atrás, Gabriel Heming disse:

Corrigi o 


$var = $n_resolucao[0];

para:

 $var = $clientes[0]; 

 

a impressão ficou assim:


<?= $cliente->n_resolucao; ?>

agora deu este erro: Notice: Trying to get property of non-object in 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu imagino que você fez algo parecido assim:

$var = $clientes[0];

echo $cliente->n_resolucao;

Lá nos tópicos anteriores, o que eu passei foram exemplos. Você deve adequar os nomes das variáveis. Ou seja, o nome que você adicionou aqui:

$var = $clientes[0]; //nome da variável $var

Deve ser o mesmo nome da variável que você utilizará aqui:

echo $cliente->n_resolucao; //nome da variável $cliente

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, Marcones Borges disse:

Só que da erro nos campos abaixo, todos.

Aparece este erro:

Notice: Trying to get property of non-object in 

Resolvido, aqui estava

<?=$clientes->n_resolucao?>  

quando era

<?=$cliente->n_resolucao?>  

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.