Ir para conteúdo

POWERED BY:

Arquivado

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

fabiosc80

Problemaço

Recommended Posts

Pessoal vejam esse site:

 

CLIQUE AQUI

 

 

Porque meu select ta mostrando mais de uma empresa e categoria repetida?

 

E Pq nao consigo listar todas as categorias e subcategorias?

 

Abaixo segue o código para ver se alguem tem uma idéia.

eu acho que meu loop esta errado eb pois eu nao estou sabendo deixar apenas listando os dados uma vez só de cada item.

 

Como faço?

 

PS: Não to com dúvida no JS e SIM no ASP

 

Me ajudem por favor, isso vale meu emprego

 

 

ASP [/tr][tr]<!--#include file="conexao.asp"-->

<%

dim Sql,TB,BC

 

'string para exibir os dados

 

Sql = "SELECT distinct Emp.CodigoEmpresa, Emp.Nome, Cat.CodigoCategoria, Cat.NomeCategoria, Sub.CodigoSubCategoria, Sub.NomeSubCategoria FROM (Empresa Emp RIGHT JOIN Categoria Cat ON Emp.CodigoEmpresa = Cat.CodigoEmpresa) LEFT JOIN SubCategoria Sub ON Cat.CodigoCategoria = Sub.CodigoCategoria"

 

%>

<html>

<head>

<title>:: NO MUNDO DA LUA ::</title>

 

<meta NAME="description" CONTENT="Insert Description Here">

<meta NAME="keywords" CONTENT="Insert Keywords Here">

 

<script language="Javascript" type="text/javascript">

function openWin()

{

var value = "main.html";

 

var nav = navigator.appVersion.charAt(0);

var nap = navigator.appName;

var xx = screen.width / 2 - 500;

var yy = screen.height / 2 - 400;

window.open(value,'DCFWin','resizable=no,screenX='+xx+',screenY='+yy+',width=500,height=400,status=no,location=no,toolbar=no,menubar=no,scrollbars=no');

}

</script>

 

<style type="text/css">

<!--

BODY {

background-image: URL(images/bg_sp.jpg);

background-repeat: repeat-x}

-->

</style>

 

<link rel="stylesheet" href="style1.css" type="text/css" media="screen">

 

</head>

 

<body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" scroll="no">

 

<table border="0" width="100%" cellspacing="0" cellpadding="0">

<tr>

<td width="50%" valign="top">

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"

codebase="http://active.macromedia.com/flash4/cabs/swflash.cab#version=4,0,0,0"

id="Movie1" width="433" height="219">

<param name="_cx" value="11456">

<param name="_cy" value="5794">

<param name="FlashVars" value="-1">

<param name="Movie" value="movie1.swf">

<param name="Src" value="movie1.swf">

<param name="WMode" value="Window">

<param name="Play" value="-1">

<param name="Loop" value="-1">

<param name="Quality" value="High">

<param name="SAlign" value>

<param name="Menu" value="-1">

<param name="Base" value>

<param name="AllowScriptAccess" value="always">

<param name="Scale" value="ShowAll">

<param name="DeviceFont" value="0">

<param name="EmbedMovie" value="0">

<param name="BGColor" value>

<param name="SWRemote" value><embed name="movie1" src="movie1.swf" quality="high" bgcolor="#FFFFFF" width="433" height="219" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">

</object>

 

</td>

<td width="50%">

<p align="center"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"

codebase="http://active.macromedia.com/flash4/cabs/swflash.cab#version=4,0,0,0"

id="anima1" width="225" height="190" align="right">

<param name="movie" value="anima1.swf">

<param name="quality" value="high">

<param name="bgcolor" value="#FFFFFF">

<embed name="anima1" src="anima1.swf" quality="high" bgcolor="#FFFFFF"

width="225" height="190"

type="application/x-shockwave-flash"

pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">

</embed>

</object>

</td>

</tr>

</table>

<table border="0" width="100%" cellspacing="0" cellpadding="0">

<tr>

<td width="100%" background="images/top3.jpg" height="25">

<table border="0" width="100%" cellspacing="0" cellpadding="0">

<tr>

<td width="84%">

<p align="center"><applet Code=apPopupMenu Archive=apPopupMenu.jar Width=602 Height=20 MAYSCRIPT>

<param name="Copyright" value="Apycom Software - www.apycom.com">

<param name="font" value="Arial,12,0">

<param name="fontColor" value="000000">

<param name="fontHighColor" value="ff0000">

<param name="isHorizontal" value="true">

<param name="overSound" value="pix/put.au">

<param name="solidArrows" value="true">

<param name="clickSound" value="pix/empty.au">

<param name="systemSubFont" value="false">

<param name="buttonType" value="1">

<param name="status" value="link">

<param name="alignText" value="left">

<param name="backColor" value="d6d6d6">

<param name="backHighColor" value="d6d6d6">

<param name="menuItems" value="

<%AbreBanco

Set TB = BC.Execute(sql)%>

{ ,index.html,_self,pix/new1-05.gif}

 

{-}

 

{A Empresa,java script:open('aempresa.html','_blank','scrollbars=no,width=500,height=400,status=no,location=no,toolbar=no,menubar=no,'),_blank,pix/new4-038.gif}

 

{-}

 

{Produtos,pix/setup.gif}

 

<%

Do While not TB.EOF

%>

 

 

{|<%=TB("

Nome")%>}

 

 

{||<%=TB("

NomeCategoria")%>,java script:open('produtos/allure/allure.html','_blank','scrollbars=no,width=500,height=400,status=no,location=no,toolbar=no,menubar=no,'),_blank}

<%If TB("

CodigoSubCategoria") <> "" then %>

{||<%=TB("

NomeCategoria")%>}

{|||<%=TB("

NomeSubCategoria")%>,java script:open('produtos/feiticoo/casaldoamor.html','_blank','scrollbars=no,width=500,height=400,status=no,location=no,toolbar=no,menubar=no,'),_blank}

<%End if%>

 

 

<%

TB.MoveNext

Loop

%>

 

 

 

{||<%=TB("

Categoria.NomeCategoria")%>,java script:open('produtos/allure/aromatizadores.html','_blank','scrollbars=no,width=500,height=400,status=no,location=no,toolbar=no,menubar=no,'),_blank}

 

 

 

{-}

 

{Cadastro,pix/new4-0034.gif}

 

{|Cadastre-se para Acessar nossa Loja Virtual.,java script:open('cadastrosenha.html','_blank','scrollbars=no,width=500,height=400,status=no,location=no,toolbar=no,menubar=no,'),_blank}

{-}

{Loja Virtual,http://www.nomundodalua.com.br/inloja,_blank,pix/new4-0035.gif}

{-}

{Fale Conosco,java script:open('faleconosco.html','_blank','scrollbars=no,width=500,height=400,status=no,location=no,toolbar=no,menubar=no,'),_blank,pix/mail.gif}

{-}

"

>

</applet></td>

<td width="16%" valign="middle">

<p align="right">

[/tr]

 

Desesperadamente,

 

Fábio Sanches Carmona

Compartilhar este post


Link para o post
Compartilhar em outros sites

procura simplificar seu select....você está usando left join, etc......use os comando básicos....vá devagar senão você fica aí desesperado......quando sua função estiver funcionando corretamente no modo arroz e feijão, qí sim você parte pro high-tech :D use inner join mesmo...e assim por dianteé bem provável que o seu problema seja o seu applet.... ou seu js

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se funciona...

SELECT DISTINCT(Emp.CodigoEmpresa), Emp.Nome, Cat.CodigoCategoria, Cat.NomeCategoria, Sub.CodigoSubCategoria, Sub.NomeSubCategoria FROM Empresa Emp INNER JOIN Categoria Cat ON Emp.CodigoEmpresa = Cat.CodigoEmpresaINNER JOIN SubCategoria Sub ON Cat.CodigoCategoria = Sub.CodigoCategoria----OU------SELECT Emp.CodigoEmpresa, Emp.Nome, Cat.CodigoCategoria, Cat.NomeCategoria, Sub.CodigoSubCategoria, Sub.NomeSubCategoria FROM Empresa Emp INNER JOIN Categoria Cat ON Emp.CodigoEmpresa = Cat.CodigoEmpresaINNER JOIN SubCategoria Sub ON Cat.CodigoCategoria = Sub.CodigoCategoriaGROUP BY Emp.CodigoEmpresa

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se funciona...

SELECT DISTINCT(Emp.CodigoEmpresa), Emp.Nome, Cat.CodigoCategoria, Cat.NomeCategoria, Sub.CodigoSubCategoria, Sub.NomeSubCategoria FROM Empresa Emp INNER JOIN Categoria Cat ON Emp.CodigoEmpresa = Cat.CodigoEmpresaINNER JOIN SubCategoria Sub ON Cat.CodigoCategoria = Sub.CodigoCategoria----OU------SELECT Emp.CodigoEmpresa, Emp.Nome, Cat.CodigoCategoria, Cat.NomeCategoria, Sub.CodigoSubCategoria, Sub.NomeSubCategoria FROM Empresa Emp INNER JOIN Categoria Cat ON Emp.CodigoEmpresa = Cat.CodigoEmpresaINNER JOIN SubCategoria Sub ON Cat.CodigoCategoria = Sub.CodigoCategoriaGROUP BY Emp.CodigoEmpresa
Vamos por partes.Gastao é access sim. O servidor do cliente nao possui SQL. Ja fiz direto pelo banco a Query mas ele sempre traz a empresa varias vezes....JUCAMaster eu usei right join e left join pois nao tava mostrando todas as empresas .Ska Ska. Nenhum desses selects trouxeram dados.E agora?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que ta acontecendo é que com LEFT e RIGTH vem dados repetidos mesmo, pois pega as comninações nas tabelas, o mais usual é o inner join mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que ta acontecendo é que com LEFT e RIGTH vem dados repetidos mesmo, pois pega as comninações nas tabelas, o mais usual é o inner join mesmo

MarioufpaFiz com o Inner Joinele deixou do mesmo jeito só que nao trazendo um monte de empresas.Sql = "SELECT distinct Emp.Nome, Emp.CodigoEmpresa,Cat.CodigoCategoria, Cat.NomeCategoria, Sub.CodigoSubCategoria, Sub.NomeSubCategoria FROM (Empresa Emp Inner JOIN Categoria Cat ON Emp.CodigoEmpresa = Cat.CodigoEmpresa) Inner JOIN SubCategoria Sub ON Cat.CodigoCategoria = Sub.CodigoCategoria"

Compartilhar este post


Link para o post
Compartilhar em outros sites

so vai trazer as que tiverem dados em ambas as tabelas...veja se o que não ta te matando é aquele distinct...

Compartilhar este post


Link para o post
Compartilhar em outros sites

so vai trazer as que tiverem dados em ambas as tabelas...

 

veja se o que não ta te matando é aquele distinct...

Marioufpa tentei fazer assim no javascript no meio.

Mas ele nao ta listando ainda todas as empresas. Ta trazendo subcategorias como empresas e no lugar de trazer categorias trouxe as sub categorias

 

ASP [/tr][tr]<%

'select 1 listando as empresas

 

Do While not TB.EOF

%>

 

 

{|<%=TB("Nome")%>}

 

<%sql2 = "select * from categoria where CodigoEmpresaempresa =" & TB("CodigoEmpresa")%>

<%Set TB2 = BC.Execute(sql2)%>

 

<%do while not Tb2.EOF%>

{||<%=TB2("NomeCategoria")%>,java script:open('produtos/allure/allure.html','_blank','scrollbars=no,width=500,height=400,status=no,location=no,toolbar=no,menubar=no,'),_blank}

 

 

<%sql3 = "select * from Subcategoria where CodigoCategoria =" & TB2("CodigoCategoria")%>

<%Set TB3 = BC.Execute(sql3)%>

 

<%do while not tb3.EOF %>

<%If TB3("CodigoSubCategoria") <> "" then %>

{|||<%=TB3("NomeSubCategoria")%>,java script:open('produtos/feiticoo/casaldoamor.html','_blank','scrollbars=no,width=500,height=400,status=no,location=no,toolbar=no,menubar=no,'),_blank}

<%Else%>

{||<%=TB3("NomeCategoria")%>}

<%End if%>

<%

TB3.Movenext

loop%>

<%

 

<%

Tb2.Movenext

loop%>

 

TB.MoveNext ' select 1

Loop ' select 1

%>

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas o que que tu vais querer que apareça nos campos que ficarem faltando???

Seguinte quando nao tiver categoria é pra ficar em branco mesmomesma coisa com a subcategoria quando nao tiver subcategoria só mostra a categoria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas o que que tu vais querer que apareça nos campos que ficarem faltando???

Nem precisa responder, não rola, toda vez que tu tentares ignorar a junção de tabelas ele vai unir o campo que ficou faltando com todos os campos da segunda tabela, tente outra maneira de fazer o seu select, de preferência sem tentar burlar a chave estrangeira.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para não perder o emprego recomentod dois selects, um pra pegar todos os que possuem chave estrangeira e outro para pegar aqueles campos onde a chave estrangeira é nulaSelect campo from tabela where campo is null;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para não perder o emprego recomentod dois selects, um pra pegar todos os que possuem chave estrangeira e outro para pegar aqueles campos onde a chave estrangeira é nulaSelect campo from tabela where campo is null;

Cara esta é uma alternativa... A melhor?? Com certeza não, mas garante teu emprego depois você "ajeita"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para não perder o emprego recomentod dois selects, um pra pegar todos os que possuem chave estrangeira e outro para pegar aqueles campos onde a chave estrangeira é nulaSelect campo from tabela where campo is null;

Cara esta é uma alternativa... A melhor?? Com certeza não, mas garante teu emprego depois você "ajeita"
Marioufpa, Não entendi nada do que vcs me falaram.Alias a coisa ta feia aqui, to de aviso já, me deram mais um dia de prazo só ou rua.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara o que o povo disse é que como o inner join une as tabelas, você pode ler uma e usar os valores dela pra ler a outra...

Compartilhar este post


Link para o post
Compartilhar em outros sites

mano...como você quer usar um inner join oiu left join se há inconsistyência nos dados?pelo que eu vi existe empresas sem categorias e categorias sem subcategoriasOlhe só o seu select:SELECT distinct Emp.CodigoEmpresa, Emp.Nome, Cat.CodigoCategoria, Cat.NomeCategoria, Sub.CodigoSubCategoria, Sub.NomeSubCategoria FROM (Empresa Emp RIGHT JOIN Categoria Cat ON Emp.CodigoEmpresa = Cat.CodigoEmpresa) LEFT JOIN SubCategoria Sub ON Cat.CodigoCategoria = Sub.CodigoCategoria" entenda seu select.....você está mandando selecionar os campos da tabela empresa onde o código da empresa seja igual ao codigo da empresa em Categorias que por sua vez o código da categoria exista em subcategorias....se não existir nenhuma empresa em categorias...furou seu select......se não existir a categoria em subcatregorias....furou seu select....Usando o Left Join você vai trazer as categorias ou subcategorias que não estejam relacionados....então....vai bagunçar seu select..colocando categorias erradas para empresas erradas e assim por diante

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.