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 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?
    • By Jonas_Britto
      Boa Tarde Pessoal... Preciso de uma ajuda, sou iniciante tenho estudado e pesquisado mas não tenho conseguido achar a solução... Quando vou imprimir o resultado do banco de dados mysql vem com aspas e colchetes.. Necessito retira-los.. Se alguem puder me ajudar agradeço desde de já..
       
      public function index()
          {
              if(!in_array('viewSocio', $this->permission)) {
                  redirect('dashboard', 'refresh');
              }
              $this->render_template('socios/index', $this->data);    
          }
          /*
          * It Fetches the products data from the product table
          * this function is called from the datatable ajax function
          */
          public function fetchSocioData()
          {   
              $result = array('data' => array());
              $data = $this->model_socios->getSocioData();
              
              
              foreach ($data as $key => $value) {
              // $dependentes_data = $this->model_dependentes->getDependentesData($value['dependente_id']);
                  // button
                  $buttons = '';
                  if(in_array('updateSocio', $this->permission)) {
                      $buttons .= '<a href="'.base_url('socios/update/'.$value['id']).'" class="btn btn-default"><i class="fa fa-pencil"></i></a>';
                  }
                  if(in_array('deleteSocio', $this->permission)) {
                      $buttons .= ' <button type="button" class="btn btn-default" onclick="removeFunc('.$value['id'].')" data-toggle="modal" data-target="#removeModal"><i class="fa fa-trash"></i></button>';
                  }
                  
                  $img = '<img src="'.base_url($value['image']).'" alt="'.$value['name'].'" class="img-circle" width="50" height="50" />';
                  $availability = ($value['availability'] == 1) ? '<span class="label label-success">Active</span>' : '<span class="label label-warning">Inactive</span>';
                  
                  $result['data'][$key] = array(
                      $img,
                      $value['n_titulo'],
                      $value['name'],
                      $value['cpf'],
                      $value['dependente_id'],
                      $availability,
                      $buttons
                  
                  );
              } // /foreach
              echo json_encode($result);
          }   

    • By adomingo10
      Pessoal
      Sou iniciante e estou com dúvida no erro de variável indefinida, a conexão do BD funciona, em outra página do projeto os dados são listados corretamente. Nesse código abaixo, já testei de tudo e aparecem dois códigos de erro. 
      O objetivo desse código é listar dentro do html os dados da tabela do BD, exemplo:  vou deixar fixo um registro da categoria no topo da página. 
       
      Código: <!-- CONTROLLER --> <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Buscar extends CI_Controller { public $data = array(); public function __construct(){ parent::__construct(); $this->load->model('menus_model'); $this->data['base_url'] = base_url(); $this->data['menus'] = $this->menus_model->getMenus(); $this->data['menu_ativo'] = ''; $this->data['header'] = $this->load->view('frontend/includes/header.php', $this->data, true); $this->data['navigation'] = $this->load->view('frontend/includes/navigation.php', $this->data, true); $this->data['footer'] = $this->load->view('frontend/includes/footer.php', $this->data, true); } public function index() { //page title $this->data['title'] = 'Buscar'; //template buscar $this->data['body'] = $this->load->view('frontend/pages/buscar.php', $this->data, true); //default template $this->load->view('frontend/templates/default.php', $this->data); } public function search_category(){ $this->load->model("Buscar_model"); $lista = $this->Buscar_model->BuscarCategory(); $dados = array("categories" => $lista); $this->load->view('frontend/pages/buscar.php', $dados); } } // MODEL // <?php class Buscar_model extends CI_Model{ public function getBuscar( $keyword=null ){ if($keyword){ $this->db->like('client_name', $keyword); $this->db->or_like('category_name', $keyword); $this->db->or_like('client_description', $keyword); $this->db->or_like('city_name', $keyword); $this->db->where('client_active', 1); } return $this->db->get("base_clie_total")->result_array(); } public function BuscarCategory(){ return $this->db->get("categories")->result_array(); } } // VIEW // <body> <section class="hero is-info"> <div class="hero-head"> <header class="nav"> <div class="container"> <div class="nav-left"> <a class="nav-item logo" href="<?= $base_url ?>"> <img src="<?= $base_url ?>assets/img/blank.png" alt="Site"> </a> </div> <div class="nav-right nav-menu"> <?= $navigation ?> </div> </div> </header> </div> </section> <section class="section"> <div class="container"> <h2 class="title">Buscar</h2> <?php foreach ($lista as $categ) : ?> <? $categ ['category_name'] ?> <?php endforeach ?> /*/    ERRO 1: /*/
          A PHP Error was encountered
      Severity: Notice
      Message: Undefined variable: lista
      Filename: pages/buscar.php
      Line Number: 26
      Backtrace:
      File: D:\BF\SITE\application\views\frontend\pages\buscar.php
      Line: 26
      Function: _error_handler
      File: D:\BF\SITE\application\controllers\Buscar.php
      Line: 30
      Function: view
      File: D:\BF\SITE\index.php
      Line: 322
      Function: require_once

      /*/    ERRO 2: /*/

      A PHP Error was encountered
      Severity: Warning
      Message: Invalid argument supplied for foreach()
      Filename: pages/buscar.php
      Line Number: 26
      Backtrace:
      File: D:\BF\SITE\application\views\frontend\pages\buscar.php
      Line: 26
      Function: _error_handler
      File: D:\BF\SITE\application\controllers\Buscar.php
      Line: 30
      Function: view
      File: D:\BF\SITE\index.php
      Line: 322
      Function: require_once
    • By RafaelScharf
      Olá, sou inciante em desenvolvimento e estou trabalhando em um sistema de ponto de venda.
       
      Quando faço a busca para vincular o cliente na venda ele da erro na requisição Ajax.
       
      Quando faço a busca retorna o seguinte erro no console:
      GET http://localhost/aroeira/distribuidora/emporium/customers/suggestions?term=R&limit=10&_=1569833733307 404 (Not Found) [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/. Veja o código da view/default/pos/add.php
      <?php if ($this->input->get('customer')) {?> if (!localStorage.getItem('positems')) { localStorage.setItem('poscustomer', <?=$this->input->get('customer');?>); } else if (!localStorage.getItem('poscustomer')) { localStorage.setItem('poscustomer', <?=$customer->id;?>); } <?php } else {?> if (!localStorage.getItem('poscustomer')) { localStorage.setItem('poscustomer', <?=$customer->id;?>); } <?php } ?> if (!localStorage.getItem('postax2')) { localStorage.setItem('postax2', <?=$Settings->default_tax_rate2;?>); } $('.select').select2({minimumResultsForSearch: 7}); var cutomers = [{ id: <?=$customer->id;?>, text: '<?=$customer->company == '-' ? $customer->name : $customer->company;?>' }]; $('#poscustomer').val(localStorage.getItem('poscustomer')).select2({ minimumInputLength: 1, data: [], initSelection: function (element, callback) { $.ajax({ type: "get", async: false, url: "<?=site_url('customers/getCustomer')?>/" + $(element).val(), dataType: "json", success: function (data) { callback(data[0]); } }); }, ajax: { url: site.base_url + "customers/suggestions", dataType: 'json', quietMillis: 15, data: function (term, page) { return { term: term, limit: 10 }; }, results: function (data, page) { if (data.results != null) { return {results: data.results}; } else { return {results: [{id: '', text: 'No Match Found'}]}; } } } }); if (KB) { display_keyboards(); var result = false, sct = ''; $('#poscustomer').on('select2-opening', function () { sct = ''; $('.select2-input').addClass('kb-text'); display_keyboards(); $('.select2-input').bind('change.keyboard', function (e, keyboard, el) { if (el && el.value != '' && el.value.length > 0 && sct != el.value) { sct = el.value; } if(!el && sct.length > 0) { $('.select2-input').addClass('select2-active'); $.ajax({ type: "get", async: false, url: "<?=site_url('customers/suggestions')?>/" + sct, dataType: "json", success: function (res) { if (res.results != null) { $('#poscustomer').select2({data: res}).select2('open'); $('.select2-input').removeClass('select2-active'); } else { bootbox.alert('no_match_found'); $('#poscustomer').select2('close'); $('#test').click(); } } }); } }); }); $('#poscustomer').on('select2-close', function () { $('.select2-input').removeClass('kb-text'); $('#test').click(); $('select, .select').select2('destroy'); $('select, .select').select2({minimumResultsForSearch: 7}); }); $(document).bind('click', '#test', function () { var kb = $('#test').keyboard().getkeyboard(); kb.close(); //kb.destroy(); $('#add-item').focus(); }); } Veja o código do controller Costumer/suggestion
      function suggestions($term = NULL, $limit = NULL) { // $this->sma->checkPermissions('index'); if ($this->input->get('term')) { $term = $this->input->get('term', TRUE); } if (strlen($term) < 1) { return FALSE; } $limit = $this->input->get('limit', TRUE); $rows['results'] = $this->companies_model->getCustomerSuggestions($term, $limit); return $this->sma->send_json($rows); } veja agora a model company_model.php
      public function getCustomerSuggestions($term, $limit = 10) { $this->db->select("id, (CASE WHEN company = '-' THEN name ELSE CONCAT(company, ' (', name, ')') END) as text", FALSE); $this->db->where(" (id LIKE '%" . $term . "%' OR name LIKE '%" . $term . "%' OR company LIKE '%" . $term . "%' OR email LIKE '%" . $term . "%' OR phone LIKE '%" . $term . "%') "); $q = $this->db->get_where('companies', array('group_name' => 'customer'), $limit); if ($q->num_rows() > 0) { foreach (($q->result()) as $row) { $data[] = $row; } return $data; } } Ja tentei alterar o async: false para async: true e não funcionou. 
×

Important Information

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