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

DÚVIDA EM TAGS


claytonprog

Pergunta

PESSOAL ESTOU COM PROBLEMA AQUI PARA GERAR UMAS TAGS AGRUPADAS!! SEGUE ABAIXO O PROBLEMA:

TABELA TAGS

ID - ID_MARCADOR - ID_POSTAGEM

ONDE:

ID- AUTONUMERADOS

ID_MARCADOR - VEM DA TABELA MARCADORES

ID_POSTAGEM - VEM DA TABELA BLOG

NO BANCO DE DADOS ESTÁ ASSIM

1 - 8 - 3

2 - 9 - 3

3 - 11 - 3

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

4 - 8 - 4

5 - 9 - 4

6 - 12 - 4

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

ESTOU TENTANDO AGRUPAR PARA QUE APAREÇA AS TAGS PARA AS POSTAGENS

ESTÁ APARECENDO ASSIM:

8(2) 9(2) 11(2) 12(2)

É PARA APERECER ASSIM:

8(2) 9(2) 11(1) 12(1)

SEGUE ABAIXO O MEU CÓDIGO:

<CODE>

<aside class="widget widget_tags">

<h4 class="widget-title">Marcadores</h4>

<ul>

<?php

$SQL1 = "SELECT * FROM tags GROUP BY id_marcador ORDER BY id";

$query1 = mysql_query($SQL1);

while($row1 = mysql_fetch_array($query1)) {

$id_tag = $row1['id_marcador'];

?>

<?php

$somar = mysql_query("SELECT COUNT(id) as Total FROM tags GROUP BY id_marcador");

$totalid = mysql_fetch_array($somar);

?>

<li><a href=blog_marcadores.php?id=<? echo $id;?>"><? echo $id_tag; ?>( <? echo $totalid['Total]; ?> )</a></li>

<?

}

?>

</ul>

</aside>

</CODE>

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Fiz um teste assim:

create table  TAGS(
ID int not null auto_increment,
ID_MARCADOR int not null,
ID_POSTAGEM int not null,
primary key(id),
key(ID_MARCADOR, id),
key(ID_POSTAGEM, id))engine myisam;
insert into tags(id,ID_MARCADOR,ID_POSTAGEM)
values(1,8,3),(2,9,3),(3,11,3),(4,8,4),(5,9,4),(6,12,4);
SELECT id_marcador, COUNT(id) as Total FROM tags GROUP BY id_marcador;
Retornou o que você quer. Então verifiquei o seguinte: Você pede para exibir somente o campo count em
$SQL1 = "SELECT * FROM tags GROUP BY id_marcador ORDER BY id";
mas na hora de exibir coloca outros campos
<li><a href="blog_marcadores.php?id=<? echo $id;?>"><? echo $id_tag; ?>( <? echo $totalid['Total']; ?> )</a></li>
Coloque o código abaixo
SELECT id_marcador, COUNT(id) as Total FROM tags GROUP BY id_marcador;

E corrija a linha do seu código PHP que dará certo.

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz como você disse e não mudou nada veja como está o código agora:

<code>

<?php

$SQL1 = "SELECT * FROM tags GROUP BY id_marcador ORDER BY id";

$query1 = mysql_query($SQL1);

while($row1 = mysql_fetch_array($query1)) {

$id_tag = $row1['id_marcador'];

?>

<?php

$somar = mysql_query("SELECT id_marcador, COUNT(id) as Total FROM tags GROUP BY id_marcador");

$totalid = mysql_fetch_array($somar);

?>

<li><a href=blog_marcadores.php?id=<? echo $id;?>"><? echo $id_tag; ?>( <? echo $totalid['Total]; ?> )</a></li>

<?

}

?>

</code>

Está mostrando assim:

8(2) 9(2) 11(2) 12(2)

É PARA APERECER ASSIM:

8(2) 9(2) 11(1) 12(1)

Link para o comentário
Compartilhar em outros sites

  • 0

Voce ão corrigiu o código PHP como eu falei. a linha abaixo ainda está se referindo a atributos(campos) que não estão no código SQL. Nem no código SQL original nem no código SQL que te passei.

Caso você ainda não tenha visto a linha que falo é esta:

<li><a href="blog_marcadores.php?id=<? echo $id;?>"><? echo $id_tag; ?>( <? echo $totalid['Total']; ?> )</a></li>

Você insiste em usar ID e ID_TAG mas voce quer ID_MARCADOR. Ou você muda o SQL para aceitar ID e ID_TAG ou muda o código PHP para aceitar ID_MARCADOR.

Link para o comentário
Compartilhar em outros sites

  • 0
Me perdoe a falta de conhecimento, mais não entendi!!

Ok. Vamos tentar explicar pois não domino PHP, mas já reconheço alguns pontos da linguagem.

A linha abaixo retorna o SQL que você quer como resultado. (O resultado esperado dito por você no primeiro post e que eu usei como base para fazer meus testes.)

Você disse:

ESTÁ APARECENDO ASSIM:

8(2) 9(2) 11(2) 12(2)

É PARA APERECER ASSIM:

8(2) 9(2) 11(1) 12(1)

$somar = mysql_query("SELECT id_marcador, COUNT(id) as Total FROM tags GROUP BY id_marcador");
A linha abaixo é o código PHP que você está usando para exibir o resultado de seu SQL.
<li><a href="blog_marcadores.php?id=<? echo $id;?>"><? echo $id_tag; ?>( <? echo $totalid['Total']; ?> )</a></li>

O SQL retorna os seguintes campos:

id_marcador e Total.

Seu código PHP usa os seguintes campos:

$id, $id_tag, $totalid['Total']

Observe que não bate a saída do SQL com o que você usa no PHP.

Meu conhecimento de PHP encerra aqui. Se quiser posso transferir este tópico de volta a área de PHP para que eles possam te dar um suporte melhor.

Link para o comentário
Compartilhar em outros sites

  • 0

claytonprog, primeira observação, NÃO fique dando up no seu tópico, você tem pressa em uma resposta? PAGUE um profissional, caso contrário, espere que alguém lhe ajude.

Segundo, troque:

$SQL1 = "SELECT * FROM tags GROUP BY id_marcador ORDER BY id";
Por:
$SQL1 = "SELECT COUNT(id) as total, * FROM tags GROUP BY id_marcador ORDER BY id";
Caso retorne erro, use:
$SQL1 = "SELECT *, COUNT(id) as total FROM tags GROUP BY id_marcador ORDER BY id";
Também troque:
$totalid['Total'];
Por:
$row1['Total'];

Isto por si só deve resolver.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa Noite!

ESerra,

Obrigado pela ajuda, mais ainda não funcioniou. Ficou assim o código conforme você fez:

<code>

<?php

$SQL1 = "SELECT *, COUNT(id) as total FROM tags GROUP BY id_marcador ORDER BY id";

$query1 = mysql_query($SQL1);

while($row1 = mysql_fetch_array($query1)) {

$id_tag = $row1['id_marcador'];

?>

<?php

$somar = mysql_query("SELECT COUNT(id) as Total FROM tags GROUP BY id_marcador");

$totalid = mysql_fetch_array($somar);

?>

<li><a href=blog_marcadores.php?id=<? echo $id;?>"><? echo $id_tag; ?>( <? echo $row1['Total]; ?> )</a></li>

<?

}

?>

</code>

ESTÁ APARECENDO ASSIM:

8( ) 9( ) 11( ) 12( ) // não está fazendo o somatório!

É PARA APERECER ASSIM:

8(2) 9(2) 11(1) 12(1)

Editado por claytonprog
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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...