userFeliz 1 Denunciar post Postado Junho 16, 2013 Olá. tenho uma tabela, onde fica o id dos post e das tags... até ai tudo certo. ele recupera o post normal, porém no das tags(que é uma coluna de varchal), ele recupera varias tags, e as separam por virgulas... ex: id_post id_tag 1 1,5,4,8 no entanto, ele recupera apenas o primeiro id, neste caso por exemplo, seria o 1... o que eu posso fazer para ele recuperar todos os ids entre as virgulas ? uso esta linha para apresentar as tags: <p id="tag"><b style="font-size:15px;">Tags - </b><?php echo"<a href=\"tag.php?id=" . $post['ID_Tag'] . "\"title=' ".$post['Name_Tag']." '>" .$post['Name_Tag']. "</a>, "; ?> </p> Compartilhar este post Link para o post Compartilhar em outros sites
Lauro Daniel 15 Denunciar post Postado Junho 16, 2013 $ids="1,2,3,4,5"; $separavirgula = explode(',', $ids); $id1 = $separavirgula[0]; $id2 = $separavirgula[1]; $id3 = $separavirgula[2]; $id4 = $separavirgula[3]; $id5 = $separavirgula[4]; echo "$id1 - $id2 - $id3 - $id4 - $id5"; Compartilhar este post Link para o post Compartilhar em outros sites
webdevbr 35 Denunciar post Postado Junho 16, 2013 use a função explode do PHP , "ask google": PHP explode (http://php.net/manual/pt_BR/function.explode.php) Compartilhar este post Link para o post Compartilhar em outros sites
userFeliz 1 Denunciar post Postado Junho 17, 2013 Não consegui fazer, rs. Devo ter feito algo errado... segue o código : <?php $idTag = $post['ID_Tags']; $selectId = explode(',', $idTag); ?> <p id="tag"><b style="font-size:15px;">Tags - </b><?php echo"<a href=\"tag.php?id=" .$idTag . "\"title=' ".$post['Name_Tag']." '>" .$idTag. "</a>, "; ?> </p> desta forma, até aparece os ids e tals, com as virgulas junto... porém tudo é um único link, eles não estão separando... Compartilhar este post Link para o post Compartilhar em outros sites
Lauro Daniel 15 Denunciar post Postado Junho 17, 2013 Não consegui fazer, rs. Devo ter feito algo errado... segue o código : <?php $idTag = $post['ID_Tags']; $selectId = explode(',', $idTag); ?> <p id="tag"><b style="font-size:15px;">Tags - </b><?php echo"<a href=\"tag.php?id=" .$idTag . "\"title=' ".$post['Name_Tag']." '>" .$idTag. "</a>, "; ?> </p> desta forma, até aparece os ids e tals, com as virgulas junto... porém tudo é um único link, eles não estão separando... Se você quer cada um com seu respectivo link você precisa fazer um loop com os ids. Compreende? Viu o exemplo que te passei para separar os ids das vírgulas? Ai você pode fazer um loop com for ou while. Compartilhar este post Link para o post Compartilhar em outros sites
Osmar L Lima 51 Denunciar post Postado Junho 17, 2013 <?php $idTag = $post['ID_Tags']; $selectId = explode(',', $idTag); for($i=0;$i<count($selectId);$i++){ ?> <p id="tag"> <b style="font-size:15px;">Tags - </b> <?php echo"<a href=\"tag.php?id=" .$selectId[$i] . "\"title=' ".$post['Name_Tag']." '>" .$selectId[$i]. "</a>, "; ?> </p> <?php } ?> Compartilhar este post Link para o post Compartilhar em outros sites
userFeliz 1 Denunciar post Postado Junho 18, 2013 Perfeito... agora estou com problemas, para mudar do id, para o nome... esta apenas recuperando o nome da primeira tag, alguém sabe como resolver isto ? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 18, 2013 o problema é a modelagem. há solução para resolver sob a estrutura corrente... mas se puder, remodele a estrutura dos dados pois isso dessa forma pode lhe trazer complicações futuras Compartilhar este post Link para o post Compartilhar em outros sites
userFeliz 1 Denunciar post Postado Junho 18, 2013 o problema é a modelagem. há solução para resolver sob a estrutura corrente... mas se puder, remodele a estrutura dos dados pois isso dessa forma pode lhe trazer complicações futuras e o que você me aconselha a fazer ? atualmente tenho uma tabela para os posts, outra para as tags, e uma que apenas informo o id dos mesmos.... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 18, 2013 uma tabela para as tags.. Compartilhar este post Link para o post Compartilhar em outros sites
userFeliz 1 Denunciar post Postado Junho 19, 2013 mas eu já tenho. apenas recupero o id dessas tags, e mando pra outra tabela, onde vai ficar o id do post e das tags... Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Junho 19, 2013 Crie uma referencia entre as duas tabelas (Post e Tags), armazenando somente o id de cada! Exemplo: Post_has_Tag -> Nome tabela Post_idPost INT -> Nome campo Tag_idTag INT -> Nome Campo Evite esta gambiarra de 1,5,4,8 Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Saraiva 84 Denunciar post Postado Junho 19, 2013 Tambem concorco com o WDuarte e com o Hinom, trabalha desta forma pode trazer serios problemas. Este link pode lhe ajudar: Normalização de dados Compartilhar este post Link para o post Compartilhar em outros sites
userFeliz 1 Denunciar post Postado Junho 19, 2013 Tambem concorco com o WDuarte e com o Hinom, trabalha desta forma pode trazer serios problemas. Este link pode lhe ajudar: Normalização de dados Eu fiz exatamente desta forma antes, porém tive problemas para apresentar os posts corretamente, com suas devidas tags... Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Saraiva 84 Denunciar post Postado Junho 19, 2013 Mais qual problema você teve fazendo desta forma. Compartilhar este post Link para o post Compartilhar em outros sites
userFeliz 1 Denunciar post Postado Junho 19, 2013 ok, vamos lá, fiz exatamente como antes... armazenar os ids e tals, já esta funcionando, exatamente como vocês me indicaram... o problema, creio eu, esta no select... segue o código : $query = mysql_query("SELECT * FROM posts T INNER JOIN categories TC ON T.Category_ID = TC.ID_Cat LEFT JOIN post_tags ON T.ID = post_tags.ID_Post LEFT JOIN tags ON tags.ID_Tag = post_tags.ID_Tags GROUP BY T.Title ORDER BY T.ID DESC LIMIT $inicial, $numreg") or die(mysql_error()); como vocês podem ver, o id da tabela post, esta igual ao id da tabela, onde recebe o id dos posts e das tags(post_tags), por isso coloquei o GROUP BY T.Title, para listar os posts pelos títulos.... caso contrario, eles iriam se repetir, assim como esta na tabela post_tags. O problema, é que mostra apenas a primeira tag... ex : tabela post_tags: id_post id_tag 1 2 1 5 1 9 sem GROUP BY T.Title : apresentação dos post titulo post1 tag: 2 titulo post1 tag:5 titulo post1 tag:9 com GROUP BY T.Title: titulo post1 tag:2 este é o problema, ele apresenta apenas a primeira tag... Compartilhar este post Link para o post Compartilhar em outros sites