Ir para conteúdo

Arquivado

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

Elbrinner

Mini forum

Recommended Posts

Bom dia!Estou querendo fazer um mini forum e estou com duvida de como fazer. Estava pensando em criar o topico e a resposta na mesma tabela criando um identificador para diferenciar de um topico novo e a resposta do topico. Tenho essa alternativa e tenho outra que é criar uma tabela para topico e outra para as respostas...Gostaria de ouvir a opiniao de voces de qual metodo é mais apropriado. Gostaria que o novo topico ou o ultimo a ser respondido fosse o primeiro a aparecer. Sei que posso ordenar pelo id ou pela data mais se uso duas tabela será mais complicado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria uma tabela pro topico, outra pras respostas. você ordena pela data da última postagem (grava na tabela de topicos a data da última resposta, ou pode fazer a busca da data pela tabela respostas mesmo)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz duas tabelas.... Topicos e Respostas. Sendo que a tabela Respostas é vinculada a tabela Topicos....Ou seja, cada Tópico teria seu conjunto de itens na Tabela Respostas.Daí você mostra o topico, e depois, pega o id do topico q esta sendo mostrado, faz o select e mostra as respostas....Acho q é assim o melhor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiquei com uma duvida agora.Se gravo apenas o cod do usuario na tabela ou gravo apenas o nick. Se gravo o login eu uso o mesmo select e ponto e não uso mais recursos... agora se guardo o cod do usuario eu vou ter que abrir a tabela usuario varias vezes durante o loop...Estou usando access...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grave o Código do Usuário. Use uma session em seu sistema de login para guardá-lo ou use Cookies.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com problema para fazer a consulta.Tenho duas tabelas: topico: id, titulo, texto,data,id_usuarioresposta:idresp, id_topico,id_usuario,texto, datarespAs duas tabelas estao relacionadasPreciso pegar o id , id_usuario, titulo e a data mais novo.Dessa forma eu pego tudo e os resgistro se repete varias vezes... Tenho que fazer um join né?select resposta.id_usuario ,data,resposta.dataresp from topico,resposta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual campo relaciona Resposta com Topico?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora mesmo tenho essa consulta:select distinct topico.id from topico,resposta O problema que tenho com essa consulta e que não me permite selecionar os campos que quero. Da erro... Tentei assim tambem:select distinct topico.id from topico,resposta order by resposta.dataresp desc, topico.data descDa conflito com o distinct

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer exibir todos os tópicos e todas as respostas desses tópicos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente essa SQL:

select distinct Topico.id, Topico.titulo, from topico,resposta Where Topico.ID = Resposta.ID_Topico Order By Resposta.Dataresp;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu esse erro: A instruçao Select inclui uma palavra reservada, falta um argumento ou ela esta mal escrita ou bem os signos de pontuaçao não sao corretosvou analizar para ver se encontro o erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Elbrinner pq você precisa do DISTINCT no ID ? o Distinct seleciona o campo sem repetição, mas no caso o ID deve ser único então não precisa colocar DISTINCT

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops, tem uma virgula a mais

select distinct Topico.id, Topico.titulo from topico,resposta Where Topico.ID = Resposta.ID_Topico Order By Resposta.Dataresp;

 

Elbrinner pq você precisa do DISTINCT no ID ? o Distinct seleciona o campo sem repetição, mas no caso o ID deve ser único então não precisa colocar DISTINCT
Verdade, nem me atentei a isso também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente essa SQL:

select distinct Topico.id, Topico.titulo, from topico,resposta Where Topico.ID = Resposta.ID_Topico Order By Resposta.Dataresp;

A consulta deu esse erro Resposta.Dataresp esta em conflito com distinctO erro de antes foi pq deixei uma virgula antes do fromO id é unico simSe uso a consulta dessa forma:select Topico.id, Topico.titulo from topico,resposta Where Topico.ID = Resposta.ID_Topico Order By Resposta.DatarespSó me retorno os resultados dos topicos que tem comentarios na tabela resposta mais eu posso usar um OR para resolver isso né?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, é possível, tente com essa:

select Topico.id, Topico.titulo from topico,resposta Where Topico.ID = Resposta.ID_Topico Or Resposta.ID_Topico NOT IN (Select Distinct ID_Topico from resposta) Order By Resposta.Dataresp

 

Editado, corrigi o NOT IN

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.