Jump to content

Navegação noticias


Cooper41
 Share

Recommended Posts

Boas, tenho estado à algum tempo a tentar fazer isto e já tentei tanta coisa que não faço ideia de como hei de conseguir.

Vou tentar explicar-me o melhor possivel para que seja mais fácil ajudarem-me algo que não percebam em relação ao que quero, perguntem.

Eu tenho uma navegação para noticias como podem ver, tenho uma lista onde estão os titulos das noticias que vêm da base de dados.

http://img517.imageshack.us/img517/8482/listam.jpg

Onde diz "yeah" é onde reconhece o id da noticia que está a ser mostrada na pagina actual, o que eu pretendo é que acima sejam mostradas as 5 noticias seguintes a essa e abaixo sejam mostradas as 5 anteriores. Já consegui que acima sejam mostradas as 5 seguintes, mas não consigo fazer mais que isso.

Vou então colocar o código, se houver algo que não percebam ou precisarem de mais código é só dizerem.


<?php
if (!$ligacao = mysql_connect('localhost', 'root', '')) {
    echo 'Impossivel ligar ao servidor de MySql!';
    exit;
}
if (!mysql_select_db('nisaturismodb', $ligacao)) {
    echo 'Problemas com a base de dados, verifique a base de dados!';
    exit;
}

$sql_left = "select titulodanoticia,id from noticia order by dataregisto desc";
$resultado_left = mysql_query($sql_left, $ligacao);

		while ($registo_left = mysql_fetch_array($resultado_left)) {
	    $titulo_left = $registo_left["titulodanoticia"];
    		$id_left = $registo_left["id"];
		if ($id_left != $_REQUEST['id']) {
			if ($id_left-5 <= $_REQUEST['id']){

	?>
		<li><a href="noticia.php?id=<?php echo $id_left; ?>"><?php echo $titulo_left; ?></a></li>
	<?php
			}
		}else{
			echo "yeah";
			}
		}
	?> 


Resumindo, eu não ter uma lista enorme com links para todas as noticias, quero apresentar 10 links, 5 para as noticias seguintes á áctual, 5 para as noticias anteriores á actual e apresentar o titulo da noticia actual.

Desde já obrigado

Link to comment
Share on other sites

Podes considerar fazer 2 queries, assumindo que $data contém a data da tua noticia, e $id o id da noticia actual.

Para as notícias anteriores:

SELECT titulodanoticia,id FROM noticia WHERE dataregisto <= $data AND id <> $id ORDER BY dataregisto ASC LIMIT 5

Para as noticias mais recentes:

SELECT titulodanoticia,id FROM noticia WHERE dataregisto >= $data AND id <> $id ORDER BY dataregisto ASC LIMIT 5

Não testei as queries, mas as queries baseiam-se em pegar na noticia actual e ordenar pela data: pegar nas últimas 5 notícias inferiores ou iguais (noticias do mesmo dia) e colocá-las por ordem. Para as notiicas mais recentes, o conceito é o mesmo.

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
 Share

×
×
  • 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.