Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
olá a todos,
bom estive pensando, e não consegui pensar em algo para fazer no final da minha pagina um link de proxima noticia
por exemplo, tem uma noticia aberta e query é assim
select ... from noticias where id=$idate ai tudo certo, mas o que quero é colocar um link no final da pagina escrito "Próxima Notícia",mas não adianta vim falar que é so somar + 1 na ID, bom ate que funcionaria mas se por exemplo minha noticia é 11, se eu somar +1 fica 12 mas se essa noticias foi deletada ou de algum modo passa a não existir então a proxima noticia passa a ser 13, então se for pra somar dependendo disso vai dar erro.
Alguém souber, agradeço.
Acredito que com uma única consulta em Mysql isso possa ser resolvido, como o colega de cima disse. Poste sua dúvida na área correta.
Mas, em PHP, eu faria da seguinte forma, apesar de ter certeza da existência de muitas maneiras melhores:
<?php
$inicial = 5; //um id qualquer para exemplificar a noticia atual
for ($i = $inicial; $i <= $inicial+20; $i++) {
$res = mysql_query('SELECT `id`, COUNT(`id`) FROM `noticias` WHERE `id`='.$i);
$x = mysql_fetch_row($res);
if ($x[1]>0) {
echo 'Encontrado! - ID: '.$x[0];
break;
}
if ($i == ($inicial+20) && $x[1]<1) { //se nada foi encontrado em 20 tentativas
$res = mysql_query('SELECT MAX(`id`) FROM `noticias` WHERE `id`='.$i); //selecionado o ultimo registro
$x = mysql_fetch_row($res);
echo 'Encontrado! - ID: '.$x[0];
}
}
?>Até!
bom o exemplo do nosso amigo LeoCrispa não daria certo para mim, pois não quero fazer paginação
tenho que jogar o id dentro do where e não dentro do limit,
pois o exemplo do amigo H4X0R cria loops não daria certo também...
será que não tem algum comando do sql parecido com "next"?
Bem entao pela sua logica seria:
se estou vendo a noticia ID = 10 digamos
pegar noticia WHERE id maior que 10(Atual ID) LIMIT 1 ASC
acho q assim, pegaria o proximo ID q fosse maior que 10...
so nao consegui pensar aqui como fazer a query exata....
vou pensar quando chegar em casa e qualquer coisa posto.
alvarogtc bem pensado amigo, muito obrigado pela sua ideia.
Problema resolvido.
disponha... eu vivo com problemas de logica, penso rapido na cabeca como fazer, mas na hora de colocar no <?php enrolo um pouquinho....
essa ate pensei rapido.....
É mesmo, bem pensado. ;)
você pode trabalhar com LIMIT
Assim:
SELECT .... FROM noticias LIMIT $pag,1
$pag é a pagina que você está, ai você cria um botão próximo e anterior que carregam simultaneamente $pag+1 e $pag-1
e 1 depois da virgula eh o tanto de dados depois da $pag
ou seja se $pag = 1 entao oq vai acontecer é o select retornar a 1ª noticia
se $pag = 20 ele vai pegar 1 noticia a partir do 20º dado..
espero que tenha intendido