• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

XsTeAl

MySQL & php - ajuda em ER

6 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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!!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora