Jump to content

Recommended Posts

Pessoal,

Estou fazendo um relatório no codeigniter, mas não consigo recuperar o retorno da model para a view.  Dou o foreach para utilizar um conjunto de id's que preciso achar em uma tabela, mas o array só recupera o último.

Controller:

$destinoterc=$this->triangulomodel->getDestinoterc($origemuser);
        $dados['destinoterc']=$destinoterc;
        foreach ($destinoterc as &$i){
            $origemterc = $i['id'];
            $origemtercfinal=$this->triangulomodel->getOrigemterc($origemterc);
            
            
        }
        $dados['origterc']= $origemtercfinal;
       

Model

public function getOrigemterc($origemterc){
    		
    		$query =$this->db->query("SELECT * FROM cadastro
    		join tb_cidades on tb_cidades.cid_id=cadastro.cidade_origem
    	    where id =$origemterc");
    		    		
    		foreach ($query->result_array() as $row)
				{	
    			}
    			
    		 return 	$query->result_array(); 
    	}

 

Resultado , só está pegando o último ponteiro da array de origem. Teria que aparecer uns 30 registros.!

[origterc] => Array
        (
            [0] => Array
                (
                    [id_] => 21302
                   
                    [cidade] => 3233
                    
                    [cid_nome] => Januaria
                )

 

Share this post


Link to post
Share on other sites

Olá!
 

1 hour ago, clovis.sardinha said:

foreach ($query->result_array() as $row)

Quando o sr. executou esse $query->result_array(), a fila foi "limpada"

 

Quando o sr. executou novamente esse $query->result_array(), não deveria retornar nenhum resultado.

1 hour ago, clovis.sardinha said:

return $query->result_array();

 

Sugestão:

<?php
public function getOrigemterc($origemterc)
{

  $query = $this->db->query("SELECT * FROM cadastro
    join tb_cidades on tb_cidades.cid_id=cadastro.cidade_origem
      where id =$origemterc");
  
  // guarde o resultado em uma variável
  $result = $query->result_array();

  foreach ($result as $row) {
    // faça o que precisar
  }

  // e retorne a variável onde o resultado foi guardado
  return $result;
}

 

Share this post


Link to post
Share on other sites
13 horas atrás, clovis.sardinha disse:

Obrigado. Acho que ai resolve minha questão.  Valeu.

 

13 horas atrás, washalbano disse:

Olá!
 

Quando o sr. executou esse $query->result_array(), a fila foi "limpada"

 

Quando o sr. executou novamente esse $query->result_array(), não deveria retornar nenhum resultado.

 

Sugestão:


<?php
public function getOrigemterc($origemterc)
{

  $query = $this->db->query("SELECT * FROM cadastro
    join tb_cidades on tb_cidades.cid_id=cadastro.cidade_origem
      where id =$origemterc");
  
  // guarde o resultado em uma variável
  $result = $query->result_array();

  foreach ($result as $row) {
    // faça o que precisar
  }

  // e retorne a variável onde o resultado foi guardado
  return $result;
}

 

Não resolveu, continua vindo só o ultimo resultado. Eu consigo resultado das linhas, por exemplo

foreach

($query->result_array() as $row)
                {    
                      $row['cid_nome']."<br>"; // se eu dou um echo aqui vai aparecer na view direto todos os "cid_nome"
                     
                }

mas o array continua sendo só o último "cid_nome" 

Não sei como passar este resultado da $row, que me interessa, para a view. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By mark1978
      Boa noite srs, tem o código abaixo e esta funcionando normal e carregando o Qrcode no HTML na soma.
      Porém gostaria de alterar e que fosse da seguinte forma:
      Se "totalServico" for menor que "totalProdutos" e diferente de zero então carregue o Qr Code com esse valor
      Se não o valor for "0,00" carregue o valor "totalProdutos". Essa finalidade é para ter uma opção de desconto.
       
      <?php use Piggly\Pix\StaticPayload; class Os_model extends CI_Model { public function getProdutos($id = null) { $this->db->select('produtos_os.*, produtos.*'); $this->db->from('produtos_os'); $this->db->join('produtos', 'produtos.idProdutos = produtos_os.produtos_id'); $this->db->where('os_id', $id); return $this->db->get()->result(); } public function getServicos($id = null) { $this->db->select('servicos_os.*, servicos.nome, servicos.preco as precoVenda'); $this->db->from('servicos_os'); $this->db->join('servicos', 'servicos.idServicos = servicos_os.servicos_id'); $this->db->where('os_id', $id); return $this->db->get()->result(); } public function valorTotalOS($id = null) { $totalServico = 0; $totalProdutos = 0; if ($servicos = $this->getServicos($id)) { foreach ($servicos as $s) { $totalServico = $totalServico + $s->preco; } } if ($produtos = $this->getProdutos($id)) { foreach ($produtos as $p) { $totalProdutos = $totalProdutos + $p->subTotal; } } return ['totalServico' => $totalServico, 'totalProdutos' => $totalProdutos]; } public function getQrCode($id, $pixKey, $emitente) { if (empty($id) || empty($pixKey) || empty($emitente)) { return; } $result = $this->valorTotalOS($id); $amount = round(floatval($result['totalServico'] + $result['totalProdutos']), 2); if ($amount <= 0) { return; } $pix = (new StaticPayload()) ->applyValidCharacters() ->applyUppercase() ->setPixKey(getPixKeyType($pixKey), $pixKey) ->setMerchantName($emitente->nome, true) ->setMerchantCity($emitente->cidade, true) ->setAmount($amount) ->setTid($id) ->setDescription(sprintf("%s OS %s", $emitente->nome, $id), true); return $pix->getQRCode(); } }  

    • By Samuel Pietro
      Olá pessoal!

      Preciso da ajuda de vocês no seguinte!
      Tenho um arquivo retornos.json
       
      { "retornos": [ { "id": 1, "sigla": "00", "nome": "Efetuado" }, { "id": 2, "sigla": "01", "nome": "Inválido" }, { "id": 3, "sigla": "02", "nome": "Corrompido" } ] }
      E na minha aplicação feita com CodeIgniter tenho uma consulta que me mostra a sigla que está cadastrada no BD.
       
      foreach ($results as $r) {  $retorno = $r->codRetorno; } 
      Eu preciso que essa consulta ao me retornar a sigla 02 por exemplo o echo apresente o "nome" para tal "sigla" que esta cadastrada no JSON.

      No caso seria a seguinte lógica: 
      if ("$retorno" == JSON["sigla"]){ echo JSON["nome"];  } //ESTE NÃO É UM CÓDIGO VÁLIDO, É APENAS PARA FINS DE ENTENDER A LÓGICA DO QUE EU PRECISO. // PS. ESSA LOGICA PRECISA SER APLICADA DENTRO DE UM FOREACH COM MILHARES DE REGISTROS.
      Como eu posso fazer isso?
       
    • By buganti
      Olá!
       
      Estou me familiarizando com o codeigniter e desenvolvendo um site, a estrutura dele montei usando o conceito de uma página só, então eu tenho algumas section que ao clicar nos botões do menu a página vai até a section referenciada, porém, me surgiu uma questão, uma dessas section terá referências a outras páginas separadas, por exemplo, terei alguns cards com produtos, ao clicar em algum desses cards abrirá uma nova página com mais detalhes sobre esse produto, aí nessa página o meu será o mesmo, via template, só que ao clicar no botões ele busca as referências das section da página principal (única) e aí não funciona para voltar para lá, como eu deveria fazer essa referência de forma que funciona-se para ambas as situações?
       
      Não sei se fui clara na minha dúvida, se caso for necessário posso tentar me explicar melhor.
       
      Desde já agradeço.
    • By tncardoso
      Fala Pessoal... estou tendo algumas dificuldades num projeto pessoal que estou desenvolvendo com o PHP CodeIgniter.
      Estou tentando mudar o caminho da pagina inicial, para um template que eu baixei e configurei dentro deste projeto.

      Ao fazer isso.. me deparei com o seguinte erro...
      A PHP Error was encountered
      Severity: Notice
      Message: Undefined property: Home::$template
      Filename: controllers/Home.php
      Line Number: 9
      Backtrace:
      File: C:\xampp\htdocs\projects\thiago-cardoso\application\controllers\Home.php
      Line: 9
      Function: _error_handler
      File: C:\xampp\htdocs\projects\thiago-cardoso\index.php
      Line: 315
      Function: require_once
      An uncaught Exception was encountered
      Type: Error
      Message: Call to a member function show() on null
      Filename: C:\xampp\htdocs\projects\thiago-cardoso\application\controllers\Home.php
      Line Number: 9
      Backtrace:
      File: C:\xampp\htdocs\projects\thiago-cardoso\index.php
      Line: 315
      Function: require_once
       
      Em caso de Dúvida, segue aqui também um pouco do arquivo Home.php que estou trabalhando.
      <?php defined('BASEPATH') OR exit('No direct script access allowed');   class Home extends CI_Controller {          public function index()     {         // $this->load->view('home');         $this->template->show('home');     } }  
       
      Aguardo Resposta.
      Obrigado...
       
      Thiago Cardoso
    • By Cícero Antônio
      Pessoal, estou tento problemas ao recuperar dados de um form do método "post", em um site com certificado SSL. Localmente o site funciona perfeitamente, mas, quando subo pra o servidor os inputs retornam vazios. Trata-se de uma página de login.
       
      Neste projeto estou utilizando a versão 3 do Codeigniter. O site possui certificado SSL.
       
      (Obs.: estou ocultando aqui o nome do site porque estamos em fase de testes)
       
      No application/config.php:
      $config['base_url'] = 'https://www.meusite.com'; No .htaccess:
      RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ https://www.meusite.com/index.php/$1 [R,L] No views/login.php:
      <form action="<?php echo base_url('Login') ?>" method="post"> <input type="text" name="usuario" placeholder="Usuário"> <input type="password" name="senha" placeholder="Senha"> <input type="submit" value="Ok" > </form> No controllers:
      $vUsuario = $this->input->post('usuario'); $vSenha = $this->input->post('senha'); (Aqui, o input->post retorna vazio. Se eu mudar o method do formulário para get e utilizar o ->get() também funciona perfeitamente)
      Alguém já passou por isso? Alguma solução?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.