Ir para conteúdo

POWERED BY:

Arquivado

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

Mcesar

Página por categoria

Recommended Posts

Pessoal, postei algum tempo aqui solicitando uma ajuda sobre como criar uma página onde liste noticias por categoria mais as respostas não foram satisfatórias e resolve postar novamente, obrigado a quem puder me ajudar.

 

Abaixo esta a estrutura de duas tabelas quem tenho em meu banco de dados , alguém poderia me ajudar em criar uma página onde as notícia aparecesse por categorias.

 

Onde terei um menu com as categorias ex. mundo, brasil, comunidade, internet etc., preciso que ao clicar em um item neste menu apareça a página da categoria selecionada e claro as noticias relacionadas a mesma, primeiro preciso criar esta página depois pensarei em paginação ou limit de noticias. obrigado.

 

pn_noticias

 

Campo

intNotID

strNotTitle

strNotText

strNotImage

intCatID

intUsrID

strNotStatus

intNotViews

strNotHome

strNotDateCad

 

 

pn_noticias_categorias

 

Campo

intCatID

strCatTitle

 

Desde já muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você conseguiu fazer e quais são as dúvidas e dificuldades?

Neste caso não fiz nada, preciso é criar está página que liste as notícias por categoria e um menu com link para

cada categoria, não entendo muito de PHP tudo que até agora eu fiz pelo dreamweaver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O menu com as categorias é bem simples de montar. Basta fazer uma consulta listando todos os registros da tabela de categorias.

 

Para exibir os produtos de uma determinada categoria, você terá de fazer um relaionamento de tabelas, usando JOIN.

Veja:

http://forum.imasters.com.br/index.php?showtopic=140816

http://dev.mysql.com/doc/refman/4.1/pt/join.html

 

É a lógica básica de um sistema de busca. Há diversos tutoriais sobre isso.

Aconselho você a estudá-los um pouco, para saber o que está fazendo e não depender de programas como o Dreamweaver, que geram códigos automaticamente - nem sempre de boa qualidade, diga-se de passagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi voce poderia fazer assim:

 

Adapte:

Function ConectaMysql(){
		 @$conecta = mysql_connect(MY_HOST,MY_USUARIO,MY_SENHA) or die(mysql_error());
		 @$banco = mysql_select_db(MY_BANCO,$conecta) or die(mysql_error());
		 mysql_errno()==0 ? $r=true : $r=false;
return $r;
}

Function ListaCategorias(){
	ConectaMysql();
	$resultado = mysql_query("SELECT * FROM pn_noticias_categorias") or die(mysql_error());
	if($resultado and mysql_errno()==0){
		while( $linha = mysql_fetch_array($resultado) ){
			$cat_id=$linha[0];
			$cat_nome=$linha[1];
?>
	<a href="index.php?cat=<?php echo $cat_id; ?>"><?php echo $cat_nome; ?></a><br/>
<?php
		}
	}
mysql_close() or die(mysql_error());
}
?>

Chamando:

<?php
echo "<p>Categorias</p>";
ListaCategorias();
?>

Selecionando genericamente:

<?php
@$cat=$_GET['cat'];
if(isset($cat)){
ConectaMysql();
$resultado=mysql_query("SELECT * FROM pn_noticias WHERE intcatid='$cat';");
if($resultado>0 and mysql_errno()==0){
while( $linha = mysql_fetch_array($resultado) ){
?>
<h3><?php echo $linha[1];?></h3>
<?php
}
}
}
?>

P.S.: Nao testei

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi voce poderia fazer assim:

 

Adapte:

Function ConectaMysql(){
		 @$conecta = mysql_connect(MY_HOST,MY_USUARIO,MY_SENHA) or die(mysql_error());
		 @$banco = mysql_select_db(MY_BANCO,$conecta) or die(mysql_error());
		 mysql_errno()==0 ? $r=true : $r=false;
return $r;
}

Function ListaCategorias(){
	ConectaMysql();
	$resultado = mysql_query("SELECT * FROM pn_noticias_categorias") or die(mysql_error());
	if($resultado and mysql_errno()==0){
		while( $linha = mysql_fetch_array($resultado) ){
			$cat_id=$linha[0];
			$cat_nome=$linha[1];
?>
	<a href="index.php?cat=<?php echo $cat_id; ?>"><?php echo $cat_nome; ?></a><br/>
<?php
		}
	}
mysql_close() or die(mysql_error());
}
?>

Chamando:

<?php
echo "<p>Categorias</p>";
ListaCategorias();
?>

Selecionando genericamente:

<?php
@$cat=$_GET['cat'];
if(isset($cat)){
ConectaMysql();
$resultado=mysql_query("SELECT * FROM pn_noticias WHERE intcatid='$cat';");
if($resultado>0 and mysql_errno()==0){
while( $linha = mysql_fetch_array($resultado) ){
?>
<h3><?php echo $linha[1];?></h3>
<?php
}
}
}
?>

P.S.: Nao testei

 

 

Para simplificar vou criar uma página para cada categoria e em cada página precisarei listar as notícias desta categoria, eu consigo criar a página listando todas as notícias, mais isso pelo dreamweaver, eu não estou sabendo é como chamar as noticias de determinada categoria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT campos_da_tabela FROM noticias WHERE categoria = id_da_categoria;

Criar uma página para cada categoria é desnecessário. Conforme surgirem novas categorias, você teria de criar novas páginas.

 

Não precisa fazer isso.

 

Já mexeu com Query String? Provavelmente não. Leia sobre isso e verá que tudo ficará mais simples e claro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, Consegui listar minhas categorias da tabela pn_noticias_categorias relacionadas com a ID da tabela pn_noticias, mais conforme o código do lifeSample seus links <a href="index.php?cat=<?php echo $cat_id; ?>"><?php echo $cat_nome; ?></a> direciona para a index.php.

 

 

Agora o mais importante é saber como listarei as noticias referente as categorias?

 

 

alguém me ajude por favor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na index,você vai ter que pegar e analisar o valor de cat ($_GET['cat']),a partir desse valor,vai exibir as noticias.

Tabela noticias:
Coluna:nomenoticia
Tipo:varchar
Coluna:noticia
Tipo:text
Coluna:categoria
Tipo:varchar

Index:

<?php
//$c = variavel da conexao
$cat = addslashes(strip_tags($_GET['cat']));
$q = @dbx_query($c , "SELECT * FROM noticias WHERE categoria='".$cat."'");
for($i = 0;$i < $q->rows;$i++){
	echo "Nome noticia:".$q->data[$i][0].nl2br("\n");
	echo "Texto:".$q->data[$i][1].nl2br("\n");
}
?>

Abraço!

 

Ps:foi só um exemplo,fazer em base adequando-o a seu objetivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, Consegui listar minhas categorias da tabela pn_noticias_categorias relacionadas com a ID da tabela pn_noticias, mais conforme o código do lifeSample seus links <a href="index.php?cat=<?php echo $cat_id; ?>"><?php echo $cat_nome; ?></a> direciona para a index.php.

 

 

Agora o mais importante é saber como listarei as noticias referente as categorias?

 

 

alguém me ajude por favor.

 

Legal, consegui fazer listar as noticias por categoria usando o código do lifeSample, mais elas lista sem link, como fazer listarem com os links?.

estou chegando lá.

 

muito obrigado.

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.