regina 0 Denunciar post Postado Agosto 9, 2010 Bom dia! Tenho duas fontes de dados que me fornecem arrays parecidos com estes exemplos abaixo, acontece que preciso unir as duas fontes de array e depois ordená-las alfabeticamente. Rio de Janeiro [agencia] => Rio de Janeiro [1] => 19 [codigo] => 4 [2] => Belo Horizonte [unidade] => Belo Horizonte [3] => 4 $linha=mysql_fetch_array($sql); $linha2=mysql_fetch_array($sql2); $result=array_merge($linha, $linha2); Preciso que venha apareça em ordem alfabética de agencia/unidade. Como faço isso? Desde já agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
EuToComProblema! 1 Denunciar post Postado Agosto 9, 2010 Clique aqui dá uma olhada no array_merge() e em sort() tem mais funções de ordenação, veja qual atende sua necessidade. Compartilhar este post Link para o post Compartilhar em outros sites
regina 0 Denunciar post Postado Agosto 9, 2010 Eu já li bastante sobre as funções array_merge e array_multisort, mas não estou conseguindo utilizar para ordenar o array combinado. http://php.net/manual/pt_BR/function.array-multisort.php Não consigo a correta utilização destas funções. Compartilhar este post Link para o post Compartilhar em outros sites
EuToComProblema! 1 Denunciar post Postado Agosto 9, 2010 admito que tive problemas tentando ordenar array tb. não teria como unir suas consultas e ordenar por SQL? ainda posso tentar te ajudar com isso, se não outro vai ter que te dar uma mão. Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Agosto 9, 2010 utilize o union do mysql e ordena, já sai o resultado em ordem ex: SELECT id, nome FROM `tabela1` UNION SELECT id, nome FROM `tabela2` ORDER BY nome Compartilhar este post Link para o post Compartilhar em outros sites
regina 0 Denunciar post Postado Agosto 30, 2010 olá Victor Cometti e EuToComProblema! Agradeço a atenção de vocês, dei uma parada neste módulo para desenvolver outros, agora estou retornando e ainda não consegui, vou postar as tabelas como estão: -- -- Estrutura da tabela `tb_agencias` -- CREATE TABLE IF NOT EXISTS `tb_agencias` ( `agencia_id` int(1) NOT NULL AUTO_INCREMENT, `codigo` int(5) NOT NULL, `agencia` varchar(50) NOT NULL, `informacoes` text, `responsavel` varchar(50) NOT NULL, `agente` varchar(50) NOT NULL, `status` enum('ativo','inativo') NOT NULL, PRIMARY KEY (`agencia_id`), UNIQUE KEY `codigo` (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=13 ; -- -------------------------------------------------------- -- -- Estrutura da tabela `tb_unidades` -- CREATE TABLE IF NOT EXISTS `tb_unidades` ( `unidade_id` int(6) NOT NULL AUTO_INCREMENT, `codigo` int(5) NOT NULL, `unidade` varchar(55) NOT NULL, `descricao` text NOT NULL, `endereco` varchar(250) NOT NULL, `documento` varchar(100) DEFAULT NULL, `chamada` varchar(100) DEFAULT NULL, `status` enum('sim','nao') NOT NULL DEFAULT 'sim', PRIMARY KEY (`unidade_id`), KEY `categoria` (`unidade`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 PACK_KEYS=0 COMMENT='Unidades' AUTO_INCREMENT=20 ; 1) no select estou utilizando o UNION <?php $sql=mysql_query("SELECT agencia,codigo FROM tb_agencias WHERE status='ativo' UNION SELECT unidade,codigo FROM tb_unidades WHERE status='sim' ORDER BY agencia ASC, tb_unidades.unidade ASC") or die (mysql_error()); ?> <label class="campo" for="agencia">Agência <strong title="Requirido" class="requirido">*</strong><select name="agencia" id="agencia" tabindex="3" title="Agência"> <option value="0">Selecione uma agência.</option> <?php while($linha=mysql_fetch_array($sql)){ print "<option title=\"Agência\" value=\"".$linha["codigo"]."\">".$linha["agencia"]."</option>"; }?> </select></label> 2) Dentro do resultado vou ter um registro com o valor "Sede Central" neste vou precisar substituir por "Capital" e ordená-lo em ordem alfabética como se o registro do banco possuísse este valor, pergunto: É possível? Desde já agradeço regina Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Agosto 30, 2010 em relação a sua busca em 2 tabelas n intendi mtu. em relação a outra duvida, você pode substituir na query msm como exemplo select if (agencia = 'Sede Central','Capital',agencia) as agencia,codigo from tb_agencias Compartilhar este post Link para o post Compartilhar em outros sites
regina 0 Denunciar post Postado Agosto 30, 2010 Eu tenho 2 tabelas que são utilizadas juntas em um determinado momento. A tb_agencias contém correspondentes - representantes já a tb_unidades contém, digamos assim, filiais. Em um determinado momento preciso listar os correspondentes e as filiais juntas, se possível em ordem alfabética, em uma tabela o campo é agencia e na outra unidade. Está listando só não consigo colocar os campos tb_agencias.agencia e tb_unidades.unidade em ordem alfabética ASC. Grata pela atenção Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Agosto 30, 2010 eu acho melhor usar o join para unir as tabelas ao inves do union, qual o campo da tabela tb_unidades que relaciona com a tabela tb_agencias?? Compartilhar este post Link para o post Compartilhar em outros sites
regina 0 Denunciar post Postado Agosto 30, 2010 Elas não se relacionam, são independentes uma da outra. Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Agosto 30, 2010 e como q você sabe qual unidade pertence a qual agencia?? Compartilhar este post Link para o post Compartilhar em outros sites
regina 0 Denunciar post Postado Agosto 30, 2010 Não existe essa necessidade, pois são situações distintas: Eles chamam de agências a região onde só possuem uma pessoa para contato, como um representante e de unidade onde eles têm instalações próprias, com funcionários da empresa. Também levei um tempinho para entender o porque de 2 tabelas, no sistema administrativo deles é assim e eu mantive, pois existem dados em uma tabela que são desnecessários para a outra e vice-versa. Compartilhar este post Link para o post Compartilhar em outros sites
Leandro T. 0 Denunciar post Postado Março 26, 2013 Ola , estou com o mesmo probrema.. mas nao posso utilizar UNION. tenho duas tabelas contas_a_pagar e contas_a_receber: tabela-pagar 1 | 12/12/2013 | blablabla | 100,00 2 | 12/12/2013 | blablabla | 100,00 tabela-receber 1 | 09/12/2013 | ioioi | 350,00 no resultado tá aparecendo assim: 1 | 12/12/2013 | blablabla | 100,00 1 | 09/12/2013 | ioioi | 350,00 2 | 12/12/2013 | blablabla | 100,00 porem nao posso usar union, pq estou utilizando 2 fetch_array while($row2 = mysql_fetch_array($result2) and $row3 = mysql_fetch_array($result3)){ para poder fazer a continha do contas a pagar X receber. queria ordenar por data as duas tabelas... fui claro? obrigado Compartilhar este post Link para o post Compartilhar em outros sites