Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Relacionar dados entre duas tabelas MySQL

09-04-2010 17:08

Ola galera. nesse script lista todas as noticias do BD. eu queria que mostrase somente de uma determinada categoria. tem como?

na tabela tbl_noticias tem o id de cada categoria em um outro campo (id_categoria_noticia) que puxa o id da tabela de categoria

<?php include('admin/config/conexao.php');  ?>


<html> <head> <title>SISTEMA DE NOTÍCIAS</title> </head>   NOTÍCIAS EM DESTAQUE


<? $query_noticias = "select * from tbl_noticias where status = '1' limit 8"; $rs_noticias    = mysql_query($query_noticias);                      while($campo_noticias = mysql_fetch_array($rs_noticias)){                     $id_noticia        = $campo_noticias['id_noticia']; $data_noticia      = $campo_noticias['data']; $titulo_noticia    = $campo_noticias['titulo']; $descricao_noticia = $campo_noticias['descricao']; $texto_noticia     = $campo_noticias['msg']; $fonte_noticia     = $campo_noticias['legenda']; $imagem_noticia    = $campo_noticias['nome_arquivo']; ?>


<TABLE class=texto cellSpacing=4 cellPadding=0 width="90%" align=center border=0>     <TBODY>           <TR>             <TD vAlign=top align=left colSpan=2>                 <B><IMG height=7 src="imagens/seta_laranja.gif" width=7> <?= $data_noticia; ?></B> <A href="noticias-descricao.php?id_noticia=<?= $id_noticia;?>" title="<?= $descricao_noticia; ?>"><?= $descricao_noticia; ?> </A>             </TD>         </TR>     </TBODY> </TABLE> <?}?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17721
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Relacionar dados entre duas tabelas MySQL

09-04-2010 17:51

Não entendi muito bem. São 2 tabelas? Explica melhor a estrutura.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Relacionar dados entre duas tabelas MySQL

09-04-2010 17:58

nao verdade sao 3 tabelas.
tbl_categorias_noticias
tbl_noticias
tbl_usuarios
na primeira tbl_categorias_noticias guarda os valores cadastrados de um form. no caso por exemplo eu cadastro uma categoria de noticia. Geral, Esportes, Politica, Variedades .... dentro dela tem 2 campos id_categoria_noticia e categoria

dentro da tabelas tbl_noticias tem varios campos (id_noticia, id_categoria_noticia, titulo, descricao, destaque, fotografo, legenda, msg, nome_arquivo, data, status)

eu gostaria de ter uma pagina para cada categoria entende? em uma pagina mostrar soh as noticias da Categoria Geral, outr soh as noticias da categoria Esportes e porai vai
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17721
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Relacionar dados entre duas tabelas MySQL

09-04-2010 18:05

Dá uma olhada nesse artigo

http://www.codigosnaweb.com/forum/Consu ... 3_783.html

Observa a relação de id entre uma tabela e outra. No seu caso, você vai usar seus campos de id.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Relacionar dados entre duas tabelas MySQL

09-04-2010 18:22

Estrutura da tabela

-- -- Estrutura da tabela `tbl_categorias_noticias` --   CREATE TABLE `tbl_categorias_noticias` (   `id_categoria_noticia` tinyint(3) UNSIGNED NOT NULL AUTO_INCREMENT,   `categoria` VARCHAR(50) DEFAULT NULL,   PRIMARY KEY  (`id_categoria_noticia`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=14 ;   -- -- Extraindo dados da tabela `tbl_categorias_noticias` --   INSERT INTO `tbl_categorias_noticias` VALUES (11, 'Categoria 1'); INSERT INTO `tbl_categorias_noticias` VALUES (12, 'Categoria 2'); INSERT INTO `tbl_categorias_noticias` VALUES (13, 'Categoria 3');  

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17721
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Relacionar dados entre duas tabelas MySQL

09-04-2010 18:32

É só seguir a relação como mostrado no link

SELECT * FROM tabela1, tabela2 WHERE tabela1.id=tabela2.id"

Onde será comparado o campo id da tabela1, com o campo id da tabela2
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Relacionar dados entre duas tabelas MySQL

09-04-2010 19:14


UNKNOWN COLUMN 'tbl_categorias_noticias.id' IN 'where clause' $selec = "SELECT * FROM tbl_categorias_noticias, tbl_noticias WHERE tbl_categorias_noticias.id=tbl_noticias.id";

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17721
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Relacionar dados entre duas tabelas MySQL

09-04-2010 19:36

A sintaxe está correta, o mais provável é que tenha errado o nome da tabela ou coluna.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Relacionar dados entre duas tabelas MySQL

09-04-2010 19:46

Obrigado WEB, consegui e meu SELECT ficou assim

<?php $selec = "SELECT * FROM tbl_categorias_noticias, tbl_noticias WHERE tbl_categorias_noticias.id_categoria_noticia=tbl_noticias.id_categoria_noticia"; $exec = mysql_query($selec, $conexao) or die(mysql_error()); $total = mysql_num_rows($exec); ?>

pra mostrar soh uma categorias seria LIMIT 0,1 ai na outra pagina seria LIMIT 1,1 ?

Tabela completa. :wink: :wink:
-- phpMyAdmin SQL Dump -- version 2.7.0-pl2 -- http://www.phpmyadmin.net -- -- Servidor: localhost -- Tempo de Geração: Abr 09, 2010 as 07:48 PM -- Versão do Servidor: 5.0.18 -- Versão do PHP: 5.1.2 -- -- Banco de Dados: `not` --   -- --------------------------------------------------------   -- -- Estrutura da tabela `tbl_categorias_noticias` --   CREATE TABLE `tbl_categorias_noticias` (   `id_categoria_noticia` tinyint(3) UNSIGNED NOT NULL AUTO_INCREMENT,   `categoria` VARCHAR(50) DEFAULT NULL,   PRIMARY KEY  (`id_categoria_noticia`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=14 ;   -- -- Extraindo dados da tabela `tbl_categorias_noticias` --   INSERT INTO `tbl_categorias_noticias` VALUES (11, 'Categoria 1'); INSERT INTO `tbl_categorias_noticias` VALUES (12, 'Categoria 2'); INSERT INTO `tbl_categorias_noticias` VALUES (13, 'Categoria 3');   -- --------------------------------------------------------   -- -- Estrutura da tabela `tbl_noticias` --   CREATE TABLE `tbl_noticias` (   `id_noticia` INT(11) NOT NULL AUTO_INCREMENT,   `id_categoria_noticia` tinyint(4) NOT NULL DEFAULT '0',   `titulo` VARCHAR(100) NOT NULL DEFAULT '',   `descricao` VARCHAR(255) NOT NULL DEFAULT '',   `destaque` CHAR(3) NOT NULL DEFAULT '',   `fotografo` VARCHAR(100) NOT NULL DEFAULT '',   `legenda` VARCHAR(55) NOT NULL DEFAULT '',   `msg` text NOT NULL,   `nome_arquivo` VARCHAR(100) NOT NULL DEFAULT '',   `data` VARCHAR(15) NOT NULL DEFAULT '',   `status` tinyint(3) NOT NULL DEFAULT '0',   PRIMARY KEY  (`id_noticia`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=19 ;   -- -- Extraindo dados da tabela `tbl_noticias` --   INSERT INTO `tbl_noticias` VALUES (15, 11, 'titulo categoria 1', 'descr 1', '1', '', '', ' teste\r<br><br />', '', '09/04/2010', 1); INSERT INTO `tbl_noticias` VALUES (16, 12, 'titulo categoria 2', 'teste 2', '1', '', '', '\r<br>teste\r<br><br />', '', '09/04/2010', 1); INSERT INTO `tbl_noticias` VALUES (17, 13, 'titulo categoria 3', 'teste  3', '1', '', '', '3tsteteste\r<br><br />', '', '09/04/2010', 1); INSERT INTO `tbl_noticias` VALUES (18, 11, 'xxx', 'xxx', '0', '', 'xxx', 'xxx\r<br>', '', '09/04/2010', 1);   -- --------------------------------------------------------   -- -- Estrutura da tabela `tbl_usuarios` --   CREATE TABLE `tbl_usuarios` (   `id` INT(11) NOT NULL AUTO_INCREMENT,   `nome` VARCHAR(150) NOT NULL DEFAULT '',   `email` VARCHAR(150) NOT NULL DEFAULT '',   `senha` VARCHAR(50) NOT NULL DEFAULT '',   `status` VARCHAR(10) NOT NULL DEFAULT '',   PRIMARY KEY  (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;   -- -- Extraindo dados da tabela `tbl_usuarios` --   INSERT INTO `tbl_usuarios` VALUES (1, 'Administrador', 'teste@teste.com', '123456', '1');  

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17721
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Relacionar dados entre duas tabelas MySQL

09-04-2010 19:53

Seria uma paginação? Se sim, é só pegar um script de paginação MySQL pronto, aplicar essa query no script e definir um resultado por página.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Relacionar dados entre duas tabelas MySQL

09-04-2010 19:58

nao seria paginação; soh quero mostrar todas as noticias de uma categoria.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17721
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Relacionar dados entre duas tabelas MySQL

09-04-2010 20:19

Agora que ví a tabela entendi melhor. Você quer mostrar todos os produtos de uma categoria. Vai mostrar a categoria pelo id?

Porque você pode fazer o seguinte: faz uma consulta na tabela tbl_noticias retornando todos da mesma categoria que você passou "id por GET"

Não seria isso?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Relacionar dados entre duas tabelas MySQL

10-04-2010 04:21

para simplicar resolvi começar tudo novamente a nova tabela eh essa.
  -- -- Estrutura da tabela `tbmaterias` --   CREATE TABLE `tbmaterias` (   `id_materia` INT(11) NOT NULL AUTO_INCREMENT,   `titulo` VARCHAR(100) NOT NULL,   `data` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,   `texto` text NOT NULL,   `imagem` VARCHAR(100) NOT NULL,   `id_categoria` INT(11) NOT NULL,   PRIMARY KEY  (`id_materia`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=215 ;   -- -- Extraindo dados da tabela `tbmaterias` --   INSERT INTO `tbmaterias` VALUES (1, 'coluna orlaki', '2010-04-10 04:00:26', '<p>coluna orlaki</p>', '', 8); INSERT INTO `tbmaterias` VALUES (2, 'coluna orlaki', '2010-04-10 04:00:37', '<p>coluna orlaki</p>', '', 8); INSERT INTO `tbmaterias` VALUES (2, 'artigossssssssssss', '2010-04-10 04:00:54', '<p>artigossssssssssss</p>', '', 7); INSERT INTO `tbmaterias` VALUES (4, 'artigossssssssssss3232', '2010-04-10 04:01:03', '<p>artigossssssssssss3265</p>', '', 7);   -- --------------------------------------------------------   -- -- Estrutura da tabela `tbmaterias_categorias` --   CREATE TABLE `tbmaterias_categorias` (   `id_categoria` INT(11) NOT NULL AUTO_INCREMENT,   `categoria` VARCHAR(255) NOT NULL,   `email` VARCHAR(200) NOT NULL,   `cat_img` VARCHAR(100) NOT NULL,   PRIMARY KEY  (`id_categoria`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;   -- -- Extraindo dados da tabela `tbmaterias_categorias` --   INSERT INTO `tbmaterias_categorias` VALUES (2, 'Colunista 01', 'teste@teste.com', ''); INSERT INTO `tbmaterias_categorias` VALUES (3, 'Colunista 02', 'teste@teste.com', ''); INSERT INTO `tbmaterias_categorias` VALUES (4, 'Colunista 03', 'teste@teste.com', "); INSERT INTO `tbmaterias_categorias` VALUES (5, 'Colunista 04', 'teste@teste.com', '');  

inseri alguns valores pra teste.

sao duas tabelas. uma tb_materias e outra tbmaterias_categorias. na 2ª tabela (tbmaterias_categorias) seria as catergorias coloquei de teste colunistas como se fosse listar os colunistas de uma pagina. entao. e a 1ª seria os dados propriamente ditos. a noticia completa. eu posso passar o link dos valores das categorias manualmente pq nao vai ser altera, se for soh o nome. mas nao vai ser mexido. ai se eu clicar no colunista 1 por exemplo, listara todas as materias do colunista 1 e assim por diante... espero agora ter me expressado melhor. desde ja agradeço.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17721
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Relacionar dados entre duas tabelas MySQL

10-04-2010 08:34

Cada colunista tem um id_categoria, então suponho que você vai passar esse número por link.

Na hora de postar a matéria, que seria em tbmaterias, o próprio colunista iria postar, ou seja, iria pegar o id dele e colocar em algum campo do tbmaterias.

Sendo assim, a consulta seria feita com base nesse id e na tabela tbmaterias.

<a href="noticias.php?colunista=1">...

A consulta será feita na tbmaterias

SELECT * FROM tbmaterias WHERE colunista='$colunista'

Assim vai pegar todas as notícias que tenha o campo colunista o mesmo que o passado.

Tem um artigo que já indiquei aqui no fórum de como montar um sistema de notícias em PHP e MySQL, dá uma olhada
http://cirofeitosa.com.br/post/tutorial ... -php-mysql
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Relacionar dados entre duas tabelas MySQL

12-04-2010 15:06

a sim entendi. vlw WEB. ajudou muito. obrigado

nesse que vc indicou ja dei uma estudada mas acho que nao da pra escolher a categoria
0

Quem está online

Usuários navegando neste fórum: Bing [Bot]