claytonprog Postado Janeiro 5, 2013 Denunciar Share Postado Janeiro 5, 2013 PESSOAL ESTOU COM PROBLEMA AQUI PARA GERAR UMAS TAGS AGRUPADAS!! SEGUE ABAIXO O PROBLEMA:TABELA TAGSID - ID_MARCADOR - ID_POSTAGEMONDE:ID- AUTONUMERADOSID_MARCADOR - VEM DA TABELA MARCADORESID_POSTAGEM - VEM DA TABELA BLOGNO BANCO DE DADOS ESTÁ ASSIM1 - 8 - 32 - 9 - 33 - 11 - 3--------------------4 - 8 - 45 - 9 - 46 - 12 - 4-------------------------------------ESTOU TENTANDO AGRUPAR PARA QUE APAREÇA AS TAGS PARA AS POSTAGENSESTÁ 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> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 5, 2013 Denunciar Share Postado Janeiro 5, 2013 Movendo PHP » MySQL. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 claytonprog Postado Janeiro 6, 2013 Autor Denunciar Share Postado Janeiro 6, 2013 Ninguém!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Janeiro 6, 2013 Denunciar Share Postado Janeiro 6, 2013 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 abaixoSELECT id_marcador, COUNT(id) as Total FROM tags GROUP BY id_marcador;E corrija a linha do seu código PHP que dará certo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 claytonprog Postado Janeiro 6, 2013 Autor Denunciar Share Postado Janeiro 6, 2013 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) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Janeiro 6, 2013 Denunciar Share Postado Janeiro 6, 2013 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 claytonprog Postado Janeiro 7, 2013 Autor Denunciar Share Postado Janeiro 7, 2013 Me perdoe a falta de conhecimento, mais não entendi!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Janeiro 7, 2013 Denunciar Share Postado Janeiro 7, 2013 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 claytonprog Postado Janeiro 7, 2013 Autor Denunciar Share Postado Janeiro 7, 2013 Então Transfira para o forum php por favor! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 claytonprog Postado Janeiro 7, 2013 Autor Denunciar Share Postado Janeiro 7, 2013 Alguém pode ajudar??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 8, 2013 Denunciar Share Postado Janeiro 8, 2013 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 claytonprog Postado Janeiro 8, 2013 Autor Denunciar Share Postado Janeiro 8, 2013 (editado) 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 Janeiro 8, 2013 por claytonprog Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 9, 2013 Denunciar Share Postado Janeiro 9, 2013 Use $row1['total'] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 claytonprog Postado Janeiro 9, 2013 Autor Denunciar Share Postado Janeiro 9, 2013 Cara muito obrigado! Corrigi e deu certo!! Pode fechar o tópico. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
claytonprog
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
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.