Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 04:18

Olá pessoal, preciso de ajuda, já quebrei a cabeça, mas não consegui acertar...
Tenho duas tabelas: tabA e tabB
Na tabA tenho o campo A e na tabB AA e AC
Preciso listar todos os dados de tabA.A e todos os dados de tabB.AC baseando nos dados em comum dee tabB.AA, porém os dados de tabA.A nunca se repetem, mas em tabB.AA vão se repetir.
Minha consulta lista assim:
010005 - Fly
010005 - Encarte
010005 - Jornal
010004 - Papelaria
010003 - Colagem
010002 - Marca
Mas eu preciso que qndo se repetisse fosse agrupado e listasse somente um número e todos os produtos dele assim:
010005 - Fly, Encarte , Jornal
010004 - Papelaria
010003 - Colagem
010002 - Marca

Desde já lhes agradeço
Luz e Paz
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 08:49

Tem como exportar o sql e postar aqui para eu testar localmente?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 15:00


-- -- Estrutura da tabela `os` -- CREATE TABLE `os` ( `idorc` int(255) NOT NULL auto_increment, `NTorc` varchar(255) collate latin1_general_ci NOT NULL, `idlogin` varchar(255) collate latin1_general_ci NOT NULL, `rgorc` varchar(255) collate latin1_general_ci NOT NULL, `cpforc` varchar(255) collate latin1_general_ci NOT NULL, `nomeorc` varchar(255) collate latin1_general_ci NOT NULL, `ruaorc` varchar(255) collate latin1_general_ci NOT NULL, `norc` varchar(255) collate latin1_general_ci NOT NULL, `ceporc` varchar(255) collate latin1_general_ci NOT NULL, `bairroorc` varchar(255) collate latin1_general_ci NOT NULL, `cidUForc` varchar(255) collate latin1_general_ci NOT NULL, `emailorc` varchar(255) collate latin1_general_ci NOT NULL, `celorc` varchar(255) collate latin1_general_ci NOT NULL, `telorc` varchar(255) collate latin1_general_ci NOT NULL, `dataorc` varchar(255) collate latin1_general_ci NOT NULL, `horaorc` varchar(255) collate latin1_general_ci NOT NULL, PRIMARY KEY (`idorc`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci PACK_KEYS=0 AUTO_INCREMENT=8 ; -- -- Extraindo dados da tabela `os` -- INSERT INTO `os` VALUES (1, '010002', 'paulo', '', '', 'Paulo César Souza', '', '', '', '', 'Belo Horizonte/MG', 'paulocesarsouza@gmail.com', '', '', '03/01/16', '07:21'); INSERT INTO `os` VALUES (2, '010003', 'paulo', '', '', 'Paulo César Souza', '', '', '', '', 'Belo Horizonte/MG', 'paulocesarsouza@gmail.com', '', '', '03/01/16', '07:51'); INSERT INTO `os` VALUES (3, '010004', 'paulo', '', '', 'Paulo César Souza', '', '', '', '', 'Belo Horizonte/MG', 'paulocesarsouza@gmail.com', '', '', '03/01/16', '07:53'); INSERT INTO `os` VALUES (5, '010005', 'paulo', '', '', 'Paulo César Souza', '', '', '', '', 'Belo Horizonte/MG', 'paulocesarsouza@gmail.com', '', '', '03/01/16', '07:55'); INSERT INTO `os` VALUES (6, '120012', 'mario', '', '', 'Mário Carvalho Soares', '', '', '', '', 'Belo Horizonte/MG', 'mario@bol.com', '', '', '03/01/16', '10:13'); INSERT INTO `os` VALUES (7, '120013', 'mario', '', '', 'Mário Carvalho Soares', '', '', '', '', 'Belo Horizonte/MG', 'mario@bol.com', '', '', '03/01/16', '10:29'); -- -------------------------------------------------------- -- -- Estrutura da tabela `osv` -- CREATE TABLE `osv` ( `idserv` int(255) NOT NULL auto_increment, `NTSorc` varchar(255) collate latin1_general_ci NOT NULL, `sitorc` varchar(255) collate latin1_general_ci NOT NULL, `fimorc` varchar(255) collate latin1_general_ci NOT NULL, `qtdorc` varchar(255) collate latin1_general_ci NOT NULL, `servorc` varchar(255) collate latin1_general_ci NOT NULL, `obsorc` text collate latin1_general_ci NOT NULL, `vrorc` varchar(255) collate latin1_general_ci NOT NULL, `vrtorc` varchar(255) collate latin1_general_ci NOT NULL, `vrsorc` varchar(255) collate latin1_general_ci NOT NULL, `fpgtoorc` varchar(255) collate latin1_general_ci NOT NULL, `datasorc` varchar(255) collate latin1_general_ci NOT NULL, `horasorc` varchar(255) collate latin1_general_ci NOT NULL, PRIMARY KEY (`idserv`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci PACK_KEYS=0 AUTO_INCREMENT=10 ; -- -- Extraindo dados da tabela `osv` -- INSERT INTO `osv` VALUES (1, '010002', '', '', '1', 'Logomarca', 'teste 1', '', '', '', '', '03/01/16', '07:21'); INSERT INTO `osv` VALUES (2, '010003', '', '', '1', 'Papelaria', 'teste 2', '', '', '', '', '03/01/16', '07:51'); INSERT INTO `osv` VALUES (3, '010004', '', '', '1', 'Site', 'teste 3', '', '', '', '', '03/01/16', '07:53'); INSERT INTO `osv` VALUES (5, '010005', '', '', '1', 'Fly', 'Teste 11', '', '', '', '', '03/01/16', '07:55'); INSERT INTO `osv` VALUES (6, '010005', '', '', '1', 'Encarte', 'Teste 22', '', '', '', '', '03/01/16', '07:55'); INSERT INTO `osv` VALUES (7, '010005', '', '', '1', 'Jornal', 'Teste 33', '', '', '', '', '03/01/16', '07:55'); INSERT INTO `osv` VALUES (8, '120012', '', '', '1', 'Logomarca', '', '', '', '', '', '03/01/16', '10:13'); INSERT INTO `osv` VALUES (9, '120013', '', '', '1', 'Papelaria', '', '', '', '', '', '03/01/16', '10:29');

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 15:13

Consegui inserir as tabelas. Vou dar uma olhada.
0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 16:43

Fiz um teste aqui com o seguinte código:

SELECT *, GROUP_CONCAT(servorc SEPARATOR ', ') AS lista FROM osv GROUP BY NTSorc

O resultado foi:

010002 - Logomarca
010003 - Papelaria
010004 - Site
010005 - Fly, Encarte, Jornal
120012 - Logomarca
120013 - Papelaria


Eu não entendi a questão da segunda tabela porque você não falou os nomes das mesmas.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 16:58

para o entendimento ficar melhor....
aqui não deu certo....
o que são isto na consulta: ',' ?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 17:14

É o separador dos valores ali em fly, encarte, jornal. O que não deu certo ai?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 17:29

nada... não dá nada... nem erro...
só página limpa
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 17:31

Vou postar o script que usei. Ele é em MySQLi. É só definir os dados de conexão no topo.

<?php // codigosnaweb.com - scripts grátis para o seu site // PODE SER SEPARADO O TRECHO ABAIXO PARA SER CHAMADO POR INCLUDE define("SERVIDOR", "localhost"); define("USUARIO", ""); define("SENHA", ""); define("BANCODEDADOS", ""); $conecta = new mysqli(SERVIDOR, USUARIO, SENHA, BANCODEDADOS); // CONECTA if ($conecta->connect_error) { trigger_error("ERRO NA CONEXÃO: " . $conecta->connect_error, E_USER_ERROR); } // PODE SER SEPARADO O TRECHO ACIMA PARA SER CHAMADO POR INCLUDE $sql = "SELECT *, GROUP_CONCAT(servorc SEPARATOR ', ') AS lista FROM osv GROUP BY NTSorc"; // CONSULTA $query = $conecta->query($sql); // RODA A CONSULTA $linhas = $query->num_rows; if($linhas >= 1) { // SE HÁ LINHAS while($colunas = $query->fetch_assoc()) { echo " {$colunas["NTSorc"]} - {$colunas["lista"]}<br />"; // DADOS DA CONSULTA } $query->free(); // LIBERANDO OS DADOS DA CONSULTA } else { echo "Não há resultados"; // SEM RESULTADOS } $conecta->close(); // FECHANDO A CONEXÃO ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 17:37

desculpa... errei ao digitar... mas corrigi.... rsrs
mas continua listando tudo... todos os códigos com todos os produtos. ... duplicou tudo
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 17:41

O resultado aqui com as tabelas que você postou foi o seguinte:

010002 - Logomarca
010003 - Papelaria
010004 - Site
010005 - Fly, Encarte, Jornal
120012 - Logomarca
120013 - Papelaria


Qual resultado mostrou ai e o que pretende mostrar?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 18:35

pretendo mostrar exatamente o seu resultado, mas tá assim:
010005 logomarca
010005 papelaria
010005 site
repete até o 010002 com os mesmos produtos
0
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 18:40

eu tenho uma cinsulta de paginacao antes:

$_pagi_sql = "select * from os where idlogin = '$useratual'"; .... $ sql2 = "select *, group_concat (serorc SEPARATOR ',') AS lista from osv group br NTSorc"; ... <? } } ?>

0
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 18:43

tô tentando listar assim:

<? echo $ NTorc; ?> - <? echo $servorc; ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Duas tabelas, dados iguais. Consultar sem repetir

31-12-2016 19:04

Então é isso.
A primeira consulta faz a segunda consulta repetir quantas vezes forem o while da primeira consulta.

Uma coisa que não entendi. Sua primeira consulta pega todos os dados de um login específico. Mas a segunda consulta não usa dados desse login específico.
Porque está usando uma consulta dentro de outra?

Se você tem uma paginação está listando todos os usuários, qual o objetivo de adicionar essa segunda consulta?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Duas tabelas, dados iguais. Consultar sem repetir  #resolvido

31-12-2016 19:13

a segunda pega os produtos e a primeiro pega os dados do usuario.
consegui adaptar:
coloquei WHERE NTSorc = '$NTorc' depois de AS lista FROM osv
agora tá ok.. tá listando certinho.

muito obrigado web, Luz e Paz
1

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado