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


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

02-10-2014 17:44

Boa tarde Galera!

Disse que ia precisar daqui, rs.. Tentei tentei e não tive sucesso,

Tenho uma tabela chamada Cliente e outra chamada Usuarios

Preciso que um usuário possa ver vários clientes (empresas), assim fiz um cliente_id na tabela usuarios para linkar o nome do cliente desse id que está ligado ao id_cl da tabela clientes

Até ai tudo certo, se o usuario tem o cliente_id "2" na tabela clientes quem for o id_cl "2" aparece o nome dele na página, tudo funcionando, vejam esse exemplo onde Empresa 2 é o id_cl "2"

http://prntscr.com/4sh9ll

Como disse até aí tudo funcionando, sem problemas, só que o cliente mudou de ideia no meio do caminho, que era aquilo que postei no forum de jquery, ele queria escolher vários clientes para o mesmo usuario. (também resolvido), só que ele por enquanto está gravando no cliente_id da tabela usuario assim: 1, 2, 6

Agora não sei como fazer para o Cliente "Rodrigo" apresentar no relatório as Empresas:

Empresa 1 <br>
Empresa 2 <br>
Empresa 3 <br>
Empresa 4 <br>

Conseguiu entender? rs

Quebrei a cabeça e não consegui, se alguem tiver uma luz agradeço!

Valeu

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

Listar mais de um nome - PHP Mysql

02-10-2014 17:54

No caso, seria puxar primeiramente os ids, em seguida, fazer uma consulta para retornar as empresas que tem os respectivos ids, seria isso?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

02-10-2014 18:00

isso, mas como te disse, hoje ela está pegando apenas 1 id de empresa, por exemplo usuario RODRIGO só pode ver a empresa EMPRESA 1 por exemplo,

ele teria que ver mais de uma empresa entendeu?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Listar mais de um nome - PHP Mysql

02-10-2014 18:44

Vamos supor que ao buscar por rodrigo, retorne as empresas relativa a ele

SELECT * FROM TABELA WHERE NOME='RODRIGO'

Retorno

$v = "1,2,3,4";

Ai a consulta que retorna as empresas ficaria:

$ids = explode(',',$v);   $sql = "SELECT * FROM TABELA WHERE ID IN ($ids)";

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

Listar mais de um nome - PHP Mysql

02-10-2014 18:58

legal, ja abriu mais minha cabeça.

Mas preciso fazer uma lista, que já existe hoje que mandei o print acima.

Varios nomes de clientes listados, tipo... RODRIGO, WILLIAM, GERSON... um em cima do outro

Dai cada nome exibe várias empresas, entendeu?

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

Listar mais de um nome - PHP Mysql

02-10-2014 19:01

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

Listar mais de um nome - PHP Mysql

02-10-2014 19:05

Ou também essa relação de tabelas pode servir Consulta-com-comparacao-em-2-tabelas_33_783.html
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

02-10-2014 19:37

Vou estudar e te aviso amigo!

Obrigado
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

02-10-2014 19:43

Web, neste ultimo link... nessa parte:

Com essa consulta eu quero retonar:
id cor modelo
1 vermelho modelo1
2 azul modelo2
3 vermelho modelo3
4 verde modelo4

Isso já acontece, pois eu consigo falar que o rodrigo é da empresa 1

Agora eu quero que retorne assim (VEJA COR VERMELHO):


id cor modelo
1 vermelho modelo1
2 azul modelo2

3 VERMELHO modelo3
modelo5
modelo8
modelo12

4 verde modelo4

Se eu for por algum desses links da isso?

Quer acessar meu bd ou meu sistema pra ver?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Listar mais de um nome - PHP Mysql

02-10-2014 19:48

Esse post acho ser mais específico para o que precisa Agrupar-resultados-e-listar-linhas-do-g ... _8399.html
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

02-10-2014 20:15

vou ver, tks
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

03-10-2014 14:32

Web, me ajuda mais uma vez rs...

é isso que preciso sim, esse ultimo post q vc mandou: Agrupar-resultados-e-listar-linhas-do-g ... _8399.html

Fiz o teste com uma tabela só e deu certo, veja: http://engferrari.com.br/novo/teste2.php

ELe pega por exemplo o nome da empresa e agrupa o nome do cliente que tenha a mesma empresa relacionada. ótimo!

Agora o meu caso é duas tabelas, vi que vc deixou o exemplo lá mas não estou conseguindo, nunca usei INNER JOIN rs

Eu preciso pegar o campo "nome" da tabela usuarios e agrupar várias empresas ligadas a ele, no caso a coluna ''empresa_cl da tabela cliente

Aqui tem o print do que tem na tabela cliente: http://prntscr.com/4spl4k

Aqui da tabela usuario: http://prntscr.com/4splbf

Entendeu? rs

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

Listar mais de um nome - PHP Mysql

03-10-2014 15:56

A forma mais fácil é pegar a query do inner join e aplicar o nome de sua tabela e coluna, se retornar erro, só conferir o mysql_error().

Está bem explicado. tabela1 e tabela2. E tem o ON, onde você vai selecionar as duas colunas que são relacionadas em ambas tabelas.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

03-10-2014 16:19

Criei mais uma coluna para relacionar ao contrario, agora acho que vai, mas ainda deu erro, no select do join

olha meu codigo:

$selec = "SELECT cliente.empresa_cl, GROUP_CONCAT(usuario.user_id) AS todas FROM usuario INNER JOIN user_id ON cliente.empresa_cl = usuario.user_id GROUP BY usuario.user_id"; $exec = mysql_query($selec) or die(mysql_error()); while($campos=mysql_fetch_array($exec)) { echo "{$campos['empresa_cl']} - {$campos['todas']}<br />"; } 

Retorna esse erro:

Table 'engferrari.user_id' doesn't exist

Estou achando que é um detalhe só rs

Tirei base nesse cód.

SELECT tabela1.coluna1, tabela1.coluna2, GROUP_CONCAT(tabela2.coluna1) AS todas FROM tabela2 INNER JOIN tabela2 ON tabela1.coluna1 = tabela2.coluna1 GROUP BY tabela2.coluna1

Valeu a paciencia
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

03-10-2014 16:22

achei um erro, ficou assim

SELECT cliente.empresa_cl, GROUP_CONCAT(usuario.user_id) AS todas FROM usuario
INNER JOIN usuario ON cliente.empresa_cl = usuario.user_id GROUP BY usuario.user_id

depois do inner join eu tinha colocado user_id que é coluna, pelo jeito é tabela usuario,
Ai deu esse erro: rs

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

Listar mais de um nome - PHP Mysql

03-10-2014 16:23

Funcionou?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

03-10-2014 16:25

ainda nao, veja uma mensagem anterior a sua por favor
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Listar mais de um nome - PHP Mysql

03-10-2014 17:17

Tem como passar o sql com as duas tabelas?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

03-10-2014 17:18

do meu bd? tipo exportar o codigo?

passo o que precisar, se quiser entrar la pode tmb rs
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

03-10-2014 17:52

veja se é isso que precisa:

-- phpMyAdmin SQL Dump -- version 3.4.11.1deb2.2 -- http://www.phpmyadmin.net -- -- Servidor: 186.202.152.192 -- Tempo de Geração: 03/10/2014 às 17:51:42 -- Versão do Servidor: 5.6.16 -- Versão do PHP: 5.3.3-7+squeeze18   SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00";     /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */;   -- -- Banco de Dados: `engferrari` --   -- --------------------------------------------------------   -- -- Estrutura da tabela `cliente` --   CREATE TABLE IF NOT EXISTS `cliente` (   `id_cl` INT(11) NOT NULL AUTO_INCREMENT,   `user_id` INT(11) NOT NULL,   `nome_cl` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `sobrenome_cl` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `email_cl` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `empresa_cl` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `cnpj_cl` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `endereco_cl` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `cidade_cl` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `cep_cl` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `fone_cl` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `cel_cl` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   PRIMARY KEY (`id_cl`) ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;   -- -- Extraindo dados da tabela `cliente` --   INSERT INTO `cliente` (`id_cl`, `user_id`, `nome_cl`, `sobrenome_cl`, `email_cl`, `empresa_cl`, `cnpj_cl`, `endereco_cl`, `cidade_cl`, `cep_cl`, `fone_cl`, `cel_cl`) VALUES (1, 1, 'Empresa 1', 'Miranda', 'teste@teste.com.br', 'JT Comunicação', '00.000.000/0001-00', 'Rua Bartolomeu Bueno, 286', 'Sorocaba', '18000-000', '15 - 3333.3333', '15 - 99999.9999'), (2, 8, 'Empresa 2', 'Pires Correa', 'william@williampires.com.br', 'YNOWE CONSULTORIA', '164654654654', 'RUA TESTE', 'SOROCABA', '18065290', '15981173480', ''), (5, 10, 'Empresa 3', 'gggggggggggg', 'gggggggggg', 'JT Comunicação', 'gggggggggg', 'gggggggggg', 'gggggggggg', 'ggggggggg', 'ggggggggggggggg', ''), (6, 10, 'Empresa 4', 'Reche', 'gerson@crbconstrucao.com.br', 'CRB INCORPORAÇÃO E CONSTRUÇÃO LTDA', '061713430001103', 'Rua Antônio Hadade, 100', 'Sorocaba', '18048060', '1532343146', '');   -- --------------------------------------------------------   -- -- Estrutura da tabela `obras` --   CREATE TABLE IF NOT EXISTS `obras` (   `id_ob` INT(11) NOT NULL AUTO_INCREMENT,   `cliente_id` INT(11) NOT NULL,   `nome_ob` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `endereco_ob` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `nosso_n_ob` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   PRIMARY KEY (`id_ob`) ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;   -- -- Extraindo dados da tabela `obras` --   INSERT INTO `obras` (`id_ob`, `cliente_id`, `nome_ob`, `endereco_ob`, `nosso_n_ob`) VALUES (1, 1, 'Obra 1', 'Rua da Obra 1, 767', '0123456789'), (2, 2, 'PRÉDIOS GERAIS', 'RUA TL', 'TAL'), (3, 6, 'VILA LOBOS', 'Rua Antônio Perez Hernandez', '993'), (4, 6, 'LUZES CAMPOLIM', 'Rua Antônio Perez Hernandez', '939');   -- --------------------------------------------------------   -- -- Estrutura da tabela `usuario` --   CREATE TABLE IF NOT EXISTS `usuario` (   `usuario_id` INT(11) NOT NULL AUTO_INCREMENT,   `login` VARCHAR(28) COLLATE latin1_general_ci NOT NULL,   `senha` VARCHAR(80) COLLATE latin1_general_ci NOT NULL,   `nome` VARCHAR(60) COLLATE latin1_general_ci NOT NULL,   `sobrenome_us` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `cliente_id` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   `obra_id` VARCHAR(255) COLLATE latin1_general_ci NOT NULL,   PRIMARY KEY (`usuario_id`) ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=16 ;   -- -- Extraindo dados da tabela `usuario` --   INSERT INTO `usuario` (`usuario_id`, `login`, `senha`, `nome`, `sobrenome_us`, `cliente_id`, `obra_id`) VALUES (1, 'admin', 'admin', 'Administrador', 'Sobrenome', '1', '1'), (8, 'rod', '123', 'Rodrigo', 'Miranda', '1', '1'), (10, 'william@williampires.com.br', '123', 'MANÉ', 'TESTE', '2', '1'), (12, 'gerson@crbconstrucao.com.br', '123', 'Gerson ', 'Reche', '6', '4'), (14, 'login', '123456', 'Meu Nome', 'Meu Sobrenome', '5', '4');   /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;  

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

Listar mais de um nome - PHP Mysql

03-10-2014 19:49

Fiz o seguinte

SELECT usuario.cliente_id, GROUP_CONCAT(cliente.nome_cl) AS todas FROM usuario INNER JOIN cliente ON usuario.cliente_id = cliente.id_cl GROUP BY usuario.cliente_id

A princípio funciona. Só não entendi a relação que usou, por exemplo

Pelo que entendi, a tabela usuario são os cadastrados no sistema, e cada usuário pode ter mais de uma empresa. Que seriam várias linhas em clientes, correto?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

03-10-2014 20:05

Essa é a relação correto, eu mudei a estrutura agora, mas é essa ideia mesmo.

Estou longe do computador agora, quer que eu teste isso?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Listar mais de um nome - PHP Mysql

03-10-2014 20:53

Quando puder faz um teste. Qualquer coisa só falar.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

09-10-2014 14:33

Quem sabe faz ao vivo mesmo rs!

Deu certo, mas acho que deve ter algo errado com o relacionamento mesmo. Vou ver como arrumar.

Outra coisa que não exibe, é o nome, sabe o que pode ser? ficou assim o resultado:

- Empresa 1,Empresa 1

O codigo ficou assim:

$selec = "SELECT usuario.cliente_id, GROUP_CONCAT(cliente.nome_cl) AS todas FROM usuario INNER JOIN cliente ON usuario.cliente_id = cliente.id_cl GROUP BY usuario.cliente_id"; $exec = mysql_query($selec) or die(mysql_error()); while($campos=mysql_fetch_array($exec)) { echo "<b>{$campos['nome']} </b> - {$campos['todas']}<br />"; }  

Muito obrigado até agora!
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Listar mais de um nome - PHP Mysql

09-10-2014 14:51

Consegui resolver o nome, agora o que pega é o relacionamento rs

Ficou assim:
Administrador - Empresa 1,Empresa 1
MANÉ - Empresa 2
Meu Nome - Empresa 3
Gerson - Empresa 4

A empresa 1, ela repete pra quem for do id_cl 1, o certo teria que ser, quem for cliente_id "1" na tabela usuario, exibe quem é user_id "1" da tabela cliente... entendeu? rs

Desculpe toda a mao de obra, mas estamos no finalmente rs, se tiver uma luz pra esse relacionamento tmb agradeço!

Valeu
0

Quem está online

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