rocha10 0 Denunciar post Postado Outubro 28, 2018 Olá boas tardes, estou com um problema que não consigo resolver, agradeço se algum colega me ajudar... é o seguinte. tenho uma tabela mysql com ID's de input múltiplo, a estrutura da tabela quando é gravado os ID´s fica ["1","7","10"], agora queria separar estes ID's e criar uma consulta para pegar o nome correspondente 1, 7, 10 noutra tabela... de referir que seria em codeigniter .. agradeço Abraço Compartilhar este post Link para o post Compartilhar em outros sites
washalbano 54 Denunciar post Postado Outubro 28, 2018 Olá! Aparentemente, ["1","7","10"] é uma string do tipo json. use json_decode() pra transformar em array No codeigniter você pode usar ->where_in('coluna', $seu_json_decoded) Compartilhar este post Link para o post Compartilhar em outros sites
rocha10 0 Denunciar post Postado Outubro 29, 2018 podias passar para min um exemplo como ficaria a consulta no model no controller o codigo que fiz e o seguinte: controler: foreach ($data as $key => $strID) { $Modelos_data = $this->model_modelos->getmodelosData($strID['Stock_id']); var_modelos = $Modelos_data; }; model: public function getmodelosData($id = null) { $sql = "SELECT * FROM modelos WHERE id = ?"; $query = $this->db->query($sql, array($id)); return $query->result_array(); }; como passar para a view os modelos dos id em questão... peço desculpa mas no codeigniter estou perdido ainda... Compartilhar este post Link para o post Compartilhar em outros sites
washalbano 54 Denunciar post Postado Outubro 30, 2018 Dessa forma: On 10/29/2018 at 7:49 AM, rocha10 said: foreach ($data as $key => $strID) { $Modelos_data = $this->model_modelos->getmodelosData($strID['Stock_id']); var_modelos = $Modelos_data; }; Serão feitas várias requisições ao database. Tente assim: <?php // separa a ids em $data $ids = array_column($data, 'Stock_id'); // guarda o retorno do model (que vai buscar os dados no database) $this->data['modelos_data'] = $this->seu_model->getmodelosData($id); // entrega os dados para a view, onde você poderá usar a variável $modelos_data $this->load->view('sua-view', $this->data); // no model public function getmodelosData($id = null){ // verifica se $id é um array (considera array de inteiros) if(is_array($id)){ $this->db->where_in('suaTabela.suaID', $id); // se $id não for um array, considera-se que seja um inteiro } else { $this->db->where('suaTabela.suaID', $id); } return $this->db->get('suaTabela')->result_array(); }; Se funcionar, uma única requisição terá sido feita ao database. Compartilhar este post Link para o post Compartilhar em outros sites
rocha10 0 Denunciar post Postado Janeiro 28, 2019 Boas, peço desculpa pela ausência!! Ainda não consegui resolver esta dor de cabeça... vou deixar aqui o código que fiz, tive que reestruturar, para ver se alguém me pode ajudar. no model subfam public function get_subfam_Id($id = null){ $sql = "SELECT * FROM tb_sub_fam WHERE id = ?"; $query = $this->db->query($sql, array($id)); return $query->row_array(); } No controler public function fetchArtigosData(){ $result = array('data' => array()); $data = $this->model_artigos->getArtigosData(); foreach ($data as $key => $value) { // aqui vai pegar os id's da tabela (tb_sub_fam_id) o formato que este gravado é ["1","3"] json, se for só um id da certo, mas assim não da... $sub_fam_id = json_decode($value['tb_sub_fam_id']); $obj = $this->model_subfam->get_subfam_Id($sub_fam_id); $result['data'][$key] = array( $value['nome'], //nome do artigo $obj['none_sub_fam'], //aqui devia neste caso criar duas tabelas dinamicamente com nome do id 1 e outra tabela com o id 3 para depois apresentar na data table. ); } echo json_encode($result); } na views <div class="table-responsive"> <table id="tabela_art" class="table table-hover table-responsive"> <thead class="thead-default"> <tr> <th>Nome Artigo</th> <?php foreach ($nome_fam as $k => $v): ?> <th> <?php echo $v['tb_nome_fam_data']['name'] ?> </th> <?php endforeach ?> </tr> </thead> </table> </div> <script type="text/javascript"> var manageTable; var base_url = "<?php echo base_url(); ?>"; $(document).ready(function() { manageTable = $('#tabela_art').DataTable({ 'ajax': base_url + 'artigos/fetchArtigosData', 'order': [], }); </script> a data table teria que ficar com o nome do artigo, e neste caso com o nome sub familia 1 e sub familia 2. agora como eu faço isso! ou da mesmo para fazer! não sei e agradecia uma ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
WictorP 9 Denunciar post Postado Janeiro 30, 2019 Olá rocha, tudo bem? Espero que sim! O json_decode como o amigo @washalbano informou deve funcionar. $array = json_decode($sub_fam_id, true); foreach($array AS $chave => $valor) { echo $chave."<br>"; } Faça o teste com este código, deve funcionar. Abraços, Wictor Pamplona. Compartilhar este post Link para o post Compartilhar em outros sites