Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
A dúvida é simples.
Estou na pagina de um produto cadastrado em meu sistema.
Tudo é mostrado corretamente, mas nessa pagina eu tenho 2 opçoes: < ANTERIOR e PROXIMO >, no caso, para ir para o proximo produto ou voltar.
Eis o que fiz para pegar o proximo produto:
$proximolink = mysql_query("SELECT * FROM tabela WHERE id>{$id_atual} LIMIT 1");
$prox = mysql_fetch_array($proximolink);
$proximo = $prox['url'];
<a href="<?php echo $proximo; ?>">PRÓXIMO ></a>
Funcionou beleza com o operador > (maior).
Mas agora, o MENOR não funcionou, pq?
$anteriorlink = mysql_query("SELECT * FROM tabela WHERE id<{$id_atual} LIMIT 1");
$ant = mysql_fetch_array($anteriorlink);
$anterior = $ant ['url'];
<a href="<?php echo $anterior; ?>">< ANTERIOR</a>
O que está errado?
Obrigado!
>
Tipo cara faz assim em vez disso: $id>$idAtual
<?php
$id = $_GET['id'];
$TT = "".$id."+1"; //ELE FAZ A SOMA
$anteriorlink = mysql_query("SELECT * FROM tabela WHERE id = '".$TT."' LIMIT 1");
$ant = mysql_fetch_array($anteriorlink);
$anterior = $ant ['url'];
<a href="<?php echo $anterior; ?>">< ANTERIOR</a>
?>
O problema da soma é que nem todos os IDs são seguidos um do outro.
Pode ter caso do tipo:
1
2
6
7
15
19
20
.....
E ai a soma do atual +1 não pega.
Preciso pegar o valor ANTERIOR do ATUAL selecionado.
O PROXIMO eu ja consegui.
Faltou o ORDER BY
SELECT * FROM table WHERE id < 3 ORDER BY id DESC LIMIT 1
Funciona sim, acabei de testar no phpmyadmin. Ele retorna o primeiro id anterior ao que for informado.
Você notou que no lugar da variável eu usei um valor fixo? É só mudar e colocar a sua variável $id_atual no lugar
>
Funciona sim, acabei de testar no phpmyadmin. Ele retorna o primeiro id anterior ao que for informado.
Você notou que no lugar da variável eu usei um valor fixo? É só mudar e colocar a sua variável $id_atual no lugar
Sim, eu notei.
Consegui fazer funcionar apenas mudando o codigo de lugar na pagina.. Se eu mantenho os dois juntos, nao funciona, nao sei porque kkk.
Para quem precisar, veja como ficou:
<?php
$anteriorlink = mysql_query("SELECT * FROM produtos WHERE id_produto < ".$id_m." ORDER BY id_produto DESC LIMIT 1");
$ant = mysql_fetch_array($anteriorlink);
$anterior = $ant['url'];
if (mysql_num_rows($anteriorlink) == 0) {
echo "";
} else { ?>
<a href="produto/<?php echo $anterior; ?>" class="o1">< ANTERIOR</a>
<?php } ?>
<a href="../produtos" class="o2">Ver todos os produtos</a>
<?php
$proximolink = mysql_query("SELECT * FROM produtos WHERE id_produto > ".$id_m." ORDER BY id_produto ASC LIMIT 1");
$prox = mysql_fetch_array($proximolink);
$proximo = $prox['url'];
if (mysql_num_rows($proximolink) == 0) {
echo "";
} else { ?>
<a href="produto/<?php echo $proximo; ?>" class="o3">PRÓXIMO ></a> `
<?php } ?>
Obrigado pela ajuda Carlos e ao outro rapaz também.
Tipo cara faz assim em vez disso: $id>$idAtual
$TT = "".$id."+1"; //ELE FAZ A SOMA