Jump to content

MySQL & php - ajuda em ER


XsTeAl

Recommended Posts

penso estar no sitio certo,

e assim eu tou a desenvolver para uso proprio uma especia de portal, onde as pessaos registam, vem as noticias, etc...

noticias essas que tem comentarios, pois bem e asssim, eu queria fazer o sistema de comentarios, mas tenho algumas duvidas em relacao a base de dados, porque eu queria que quando as pessoas deixarem o seu comentario apareca o comentario mas com o nome dessa pessoa, portanto oq eu me custa nisto tudo e o modelo ER entre o id do utilizador e o comentario, se alguem me puder ajudar, so precisava que alguem me desse algumas luzes para fazer isso em MySQL com php

Link to comment
Share on other sites

penso estar no sitio certo,

e assim eu tou a desenvolver para uso proprio uma especia de portal, onde as pessaos registam, vem as noticias, etc...

noticias essas que tem comentarios, pois bem e asssim, eu queria fazer o sistema de comentarios, mas tenho algumas duvidas em relacao a base de dados, porque eu queria que quando as pessoas deixarem o seu comentario apareca o comentario mas com o nome dessa pessoa, portanto oq eu me custa nisto tudo e o modelo ER entre o id do utilizador e o comentario, se alguem me puder ajudar, so precisava que alguem me desse algumas luzes para fazer isso em MySQL com php

Bom, quanto à tabela será facil, basta teres um campo chave primaria que seja unico na tabela utilizadores, por exemplo userid.

Depois na tabela dos comentários usas esse campo, userid.

Depois penso que será algo do genero:

Select users.nome from users, comentarios where users.userid=comentarios.userid and comentarios.postid=x

(alguem que me corrija nesta parte se estiver errado, sff)

Em PHP, podes aplicar este mesmo conceito...

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

deixa ver se percebi, tenho estas tabelas.

CREATE TABLE `comentarios` (
  `commentID` int(11) NOT NULL auto_increment,
  `user_id` int(11) NOT NULL,
  `comentario` text NOT NULL,
  `data` date NOT NULL,
  `hora` time NOT NULL,
  PRIMARY KEY  (`commentID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

e

CREATE TABLE `user` (
  `user_id` int(11) NOT NULL auto_increment,
  `user_name` tinytext,
  `first_name` tinytext,
  `last_name` tinytext,
  `password` tinytext,
  `email` tinytext,
  `remote_addr` tinytext,
  `confirm_hash` tinytext,
  `is_confirmed` tinyint(4) default NULL,
  `date_created` date default NULL,
  `admin` varchar(250) NOT NULL default 'nao',
  PRIMARY KEY  (`user_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

e

CREATE TABLE `noticias` (
  `noticia_id` int(11) NOT NULL auto_increment,
  `titulo` varchar(500) NOT NULL,
  `primeiro` text NOT NULL,
  `segundo` text NOT NULL,
  `data` date NOT NULL,
  `hora` time NOT NULL,
  `autorID` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

ou seja para fazer o select de um comentario faco assim?

SELECT * FROM noticias, user, comentarios WHERE user.user_id=comentarios.user_id AND comentarios.comentario=comentarios.noticia_id

e assim? vai buscar os dados: user_id (na tabela user), user_id e comentario(na tabela comentraios), e o noticia_id(na tabela comentarios e na tabela noticias)

certo?

e assim que faco para mostrar os comentarios de uma determinada noticia?

Link to comment
Share on other sites

O codigo que eu disse em cima é para ires buscar o nome do utilizador que fez o comentario x.

Se nao estou em erro para ires buscar o comentar e seu autor, de noticia k:

SELECT * FROM user, comentarios WHERE user.user_id=comentarios.user_id AND comentarios.noticia_id=k

Isto está errado!

SELECT * FROM comentarios WHERE comentarios.noticia_id=k

simplesmente isto 🙂

Falta um campo que relacione o principal, ou seja, que relacione os comentário com as noticias, ou seja o comentario.noticia_id que pus em cima...

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

ah bom!

faco uam cnfusao com mysql, ja agora se n for pedri muito podes, me explicr o que e comentarios.noticia_id=k

é igual a k pk?? sei o basico, tenho mesmo de ir ler mais sobre o assunto!!!

desculpa, fui dar uma voltinha...

o campo noticia_id na tabela de comentarios permite-te saber que comentários pertencem à noticia k, é uma chave estrangeira... ou seja, o ki é o id da noticia da qual queres saber os comentários que há.

Podes sempre comprar (ou ir a uma biblioteca fica mais barato  🙂 ) um livro sobre sql... ou simplesmente pesquisar na web... eu gosto mais de livros, vão directos ao assunto.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.