Ir para conteúdo
Fórum Script Brasil
  • 0

Mostrar Somente Categoria Com Conteudo


PhoEniXFirE

Pergunta

Pessoal,

estou desenvolvendo um sistema de comercio local, onde na pag inicial irá apresentar os tipos de comercios, mas inicialmente nem todos os tipos terão comércios adicionados, por exemplo, BOMBONIERE ainda n tem loja p anunciar, queria saber como faço p apresentar somentes as categorias/tipos que tem comercios adicionados.

No banco (como padrão) são duas tabelas:

- A 1ª [Tipo] onde está os tipos de comércios (categorias), com [Cod] (que seria o id) e a [Descricao] (nome do tipo do comércio).

- A 2ª [Conteudo], onde estão os comércios propriamente ditos com suas informações, e uma coluna [secao] ligada a 1ª tabela, que diz de qual tipo de comério se trata.

Se alguém puder me da uma luz de como fazer isso agradeço, porque realmente n sabendo como fazer isso.

Obrigado.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

usa a clausura HAVING

Fiz uma pesquisa aqui no forum sobre a clausula HAVING mas n deu certo.

RS.Source = "SELECT *, (SELECT COUNT (*) FROM Conteudo WHERE Conteudo.Secao = Tipo.Cod) AS TOTAL FROM Tipo ORDER BY Descricao ASC"

Adicionei HAVING COUNT(*) >= 1, após FROM Tipo e recebi:

Você tentou executar uma consulta que não inclui a expressão 'Cod' especificada como parte de uma função agregada.

Coloquei depois do Conteudo.Secao = Tipo.Cod e o RS.Fields.Item("total").Value n apareceu nd.

Não estou sabendo utilizar mesmo

Link para o comentário
Compartilhar em outros sites

  • 0

Não entendi! o que você tentou fazer com este select acima?

Posta como você sta fazendo.

Acho que não entendi direito o que você quer fazer.

você quer exibir tipo assim?

PAPELARIA

.LOJA1

.LOJA2

PADARIA

.LOJA1

.LOJA2

é isso??

+/- assim:

Na página inicial vê:

Padarias (1) Papelaria (0)

Mercadinho (0) Famarcias (2)

Vidraçaria (1)

-------------------------

No caso o que n tem nenhum comercio, n aparecerá, ficará só:

Padarias (1) Famarcias (2)

Vidraçaria (1)

-------------------------

Meu cód é este:

<%
set RS = Server.CreateObject("ADODB.Recordset")
RS.ActiveConnection = Conn
' RS.Source = "SELECT COUNT (*) FROM Conteudo WHERE Conteudo.Secao = Tipo.Cod HAVING COUNT(*) > 0 ORDER BY Descricao ASC"

RS.Source = "SELECT *, (SELECT COUNT (*) FROM Conteudo WHERE Conteudo.Secao = Tipo.Cod) AS TOTAL FROM Tipo HAVING COUNT(*) >=1 ORDER BY Descricao ASC"
RS.Open()
%>
<table border="0" cellpadding="5" cellspacing="3" style="border-collapse: collapse" width="460">
              <%
startrw = 0
endrw = 0
numberColumns = 2
numrows = -1

while((numrows <> 0) AND (Not RS.EOF))
    startrw = endrw + 1
    endrw = endrw + numberColumns
 %>
              <tr> 
                <%
While ((startrw <= endrw) AND (Not RS.EOF))
%>
    <td align="center" style="font-family: Tahoma, Verdana, Arial; font-size: 9 pt;">» <font size=2 style="font-weight:700"><A HREF="comercio.asp?tipo=<%=(RS.Fields.Item("Cod").Value)%>" style="color: #9C1208;"><%=(RS.Fields.Item("Descricao").Value)%></A></font><font face=arial size=1> <i>(<%=(RS.Fields.Item("total").Value)%>)</i></td>
                </td>
                <%
    startrw = startrw + 1
    RS.MoveNext()
    Wend
    %>
              </tr>
              <%
 numrows=numrows-1
 Wend
 %>

O que devo fazer? Se o Having soluciona eu n sei utiliza-lo.

Link para o comentário
Compartilhar em outros sites

  • 0

"SELECT count(*) AS total FROM FROM Conteudo WHERE Conteudo.Secao = Tipo.Cod  ORDER BY Descricao ASC"
já tinha feito assim e também por INNER JOIN
SELECT * FROM Tipo INNER JOIN Conteudo ON Conteudo.Secao = Tipo.Cod 

Mas olha o só que acontece:

Comércios:

» Bombonieres (1) » Churrascarias / Restaurantes (2)

» Churrascarias / Restaurantes (2) » Escolas / Cursos (1)

» Farmácias (3) » Farmácias (3)

» Farmácias (3) » Financeiras (1)

» Hotéis / Pousadas / Motéis (1) » Lojas / Boutiques (2)

» Lojas / Boutiques (2) » Materais de Construção (1)

» Moto Peças / Bicicletas (1) » Óticas (1)

» Portas / Portões Eletrônicos (1) » Pronta Entrega (1)

» Relojoarias / Joalherias / Bijuterias (1) » Salões de Beleza (1)

» Sapatarias (1) » Serralherias (2)

» Serralherias (2) » Sorveterias (1)

» Supermercados / Mercadinhos (2) » Supermercados / Mercadinhos (2)

» Vidraçarias (2) » Vidraçarias (2)

O número de comércios que tem adicionados é usando também p apresentar as categorias, o erro será que está no While ?

Link para o comentário
Compartilhar em outros sites

  • 0

veja se é isso que voce precisa:

select  t.descricao, count(c.secao) as totoal, c.secao from conteudo c inner join tipo t on t.cod = c.secao group by c.secao, t.descricao
Deu um trabalhindo como da vez da substituição de letras acentuadas, mas consegui agora. Olha o tamanho que ficou:
SELECT Conteudo.Secao, Tipo.Descricao As Descricao, Tipo.Cod AS Cod, (SELECT COUNT (*) FROM Conteudo WHERE Conteudo.Secao = Tipo.Cod) AS TOTAL FROM Tipo INNER JOIN Conteudo ON Conteudo.Secao = Tipo.Cod GROUP BY Conteudo.Secao, Tipo.Descricao, Tipo.Cod ORDER BY Descricao ASC

Acho quem resolveu o problema da repetição foi este GROUP BY, p que serve?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...