Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nícolas

Como Trazer Os Dados De Duas Tabelas Em Um único Select?

Recommended Posts

Seguinte, esse código é pra um sistema de banners que to fazendo para o meu site.

 

Ta com estatisticas detalhadas, contas de usuários e etc.

 

 

No BD banners tem as seguintes tabelas.

Tabela: usuario

Campos:

id

usuario

senha

site

url

Tabela: usuario_banners

Campos:

id

id_usuario

banner

formato

endereco

limite

ativo

tipo

Tabela: usuario_estatisticas

Campos:

id

id_usuario

id_banner

tipo

dia

visualizacoes

cliques

Então, a parte de administração ta funcionando perfeitamente, agora to tentando botar o banner pra rodar no novo sistema do meu site.

 

Só que ele não carrega os dados.

 

Não aparece erro nenhum.

 

Como eu faço para trazer os dados?

 

Eu tentei assim mas não deu.

 

$dados = "						SELECT									B.id 				AS		id,					B.id_usuario		AS		id_usuario,					B.banner 			AS		banner, 					B.formato 			AS		formato, 					B.endereco 			AS		endereco, 					B.limite 			AS		limite, 					B.ativo 			AS		ativo,					B.tipo				AS		tipo,															E.id 				AS 		id_estatisticas, 					E.id_banner 		AS 		id_banner, 					E.visualizacoes 	AS 		visualizacoes								FROM					usuario_banners B,					usuario_estatisticas E								WHERE					B.id  = E.id_banner AND (B.ativo  = '1' AND (B.limite > E.visualizacoes OR B.limite = 'Ilimitado') AND B.tipo = 'banner')								ORDER by					RAND()														LIMIT					1								";				$dados = select($dados,"banners");				$hp = mysql_fetch_array($dados);		extrac($hp);
No caso seria só fazer uma consulta aonde ele exibisse os dados do banners que estão ativos e o limite de exibições fosse menor que os exibidos até agora OU igual a ilimitado.

 

Eu to aprendendo agora a usar novos comandos no SQL.

 

Tentei aprender aquele LEFT JOIN e outros no manual do Mysql mas não entendi muito bem.

 

Alguém da uma força aeee.

 

DETALHE:

Nessa query ele não trás nada, nem resultados e nem erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem olhando assim parece que está correto,

tem mesmo algum registro que entre nessas condições???

no seu mysql_query() coloca tb

or die("Erro");

pegue o where :

WHERE					B.id  = E.id_banner AND (B.ativo  = '1' AND (B.limite > E.visualizacoes OR B.limite = 'Ilimitado') AND B.tipo = 'banner')

e vai tirando partes até funcionar:

 

WHERE					B.id  = E.id_banner AND (B.ativo  = '1' AND (B.limite > E.visualizacoes) AND B.tipo = 'banner')

se não funcionar tira mais....e continua até ir uahauh

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca assim pra ver... B.id = E.id_banner AND B.ativo = '1' AND B.limite > E.visualizacoes OR B.limite = 'Ilimitado' AND B.tipo = 'banner'Se nao funcionar, deve ser o apelido q você deu pros campos, ou então alguma dessas tabelas está vazia.Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já sei qual foi o erro.Tava no ativo.Eu deveria ter colocado Sim ou invéz de 1.Vlw aee pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.