Jump to content
tiko165

Verificar próximo ID da BaseDados

Recommended Posts

tiko165

Imaginemos que tenho os seguintes Base de Dados, com a seguinte ordem na BD, mas com ID's aleatórios.

O que eu pretendia, era fazer o tal botão "Proximo ID", onde estivesse a ler o nome da BD "15, Alfredo", e colocasse no botão o ID "21, para Jolieta". Como faço isso na MySql ??

id, nome
1, Alberto
2, João
3, Maria
10, Manuel
15, Alfredo
21, Jolieta
25, Susana
30, Tiago
44, Diogo


collectioneuro300px.png

Share this post


Link to post
Share on other sites
I-NOZex

ha varias formas de fazer, podes por exemplo enviar num GET uma variavel tipo "prev_id" (que iria corresponder a ID que tavas a ver)

depois fazias uma query tipo isto:

$prev_id = $_GET['prev_id'];
SELECT * FROM `pessoas` WHERE id > $_prev_id LIMIT 1

ps: precisa de testes de validaçao de dados ;) mas a ideia tá la

Edited by I-NOZex
  • Vote 2

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
tiko165

ha varias formas de fazer, podes por exemplo enviar num GET uma variavel tipo "prev_id" (que iria corresponder a ID que tavas a ver)

depois fazias uma query tipo isto:

$prev_id = $_GET['prev_id'];
SELECT * FROM `pessoas` WHERE id > $_prev_id LIMIT 1

ps: precisa de testes de validaçao de dados ;) mas a ideia tá la

Exactamente, isso mesmo :)

Para fazer também o anterior basta alterar para "<", pois se for, a mim mostra-me dessa forma o 1º resultado, e não o anterior :s


collectioneuro300px.png

Share this post


Link to post
Share on other sites
I-NOZex

para o anterior faz assim:

SELECT * FROM `pessoas` WHERE id < $prev_id ORDER BY id DESC LIMIT 1

ele assim vai ordenar do maior para o menor, e vai retornar o 1º maior numero que seja menos qe o ID actual, se for 15 ele vai retornar o ID=10 ;)

Edited by I-NOZex
  • Vote 1

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
tiko165

para o anterior faz assim:

SELECT * FROM `pessoas` WHERE id < $prev_id ORDER BY id DESC LIMIT 1

ele assim vai ordenar do maior para o menor, e vai retornar o 1º maior numero que seja menos qe o ID actual, se for 15 ele vai retornar o ID=10 ;)

Obrigado pela ajuda :D

És grande :P

Edited by tiko165

collectioneuro300px.png

Share this post


Link to post
Share on other sites
I-NOZex

Obrigado pela ajuda :D

És grande :P

ahah, nada disso :cheesygrin:

mas se queres mesmo agradecer, deixa like :thumbsup:

sempre as ordens


B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
tiko165

ahah, nada disso :cheesygrin:

mas se queres mesmo agradecer, deixa like :thumbsup:

sempre as ordens

Não sei se reparas-te, mas já os tinha colocado antes :D


collectioneuro300px.png

Share this post


Link to post
Share on other sites
I-NOZex

por acaso não tinha reparado, custumo receber as notificações, deve ter-me escapado x)

mas pronto ainda bem que pude ajudar ;)


B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
pikax

offtopic: @I-NOZex isto assim parece o fb ou g+ :D


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
tiko165

ahaha :D é so um meio de ganhar reputação entre tantos cranios ;)

Que não seja por isso, recebes mais um :P


collectioneuro300px.png

Share this post


Link to post
Share on other sites
HappyHippyHippo

não será mais fácil por página ?

$pagina = 0;
$sql_total = "SELECT count(id) FROM `pessoas";

if ($pagina != 0)
 $sql_anterior = "SELECT * FROM `pessoas` ORDER BY id DESC LIMIT ".($pagina-1).", 1"
if ($pagina != $total - 1)
 $sql_proximo = "SELECT * FROM `pessoas` ORDER BY id DESC LIMIT ".($pagina+1).", 1"


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
tiko165

não será mais fácil por página ?

$pagina = 0;
$sql_total = "SELECT count(id) FROM `pessoas";

if ($pagina != 0)
 $sql_anterior = "SELECT * FROM `pessoas` ORDER BY id DESC LIMIT ".($pagina-1).", 1"
if ($pagina != $total - 1)
 $sql_proximo = "SELECT * FROM `pessoas` ORDER BY id DESC LIMIT ".($pagina+1).", 1"

Não me parece, pois os ID's poderão nunca ser seguidos.


collectioneuro300px.png

Share this post


Link to post
Share on other sites
HappyHippyHippo

Não me parece, pois os ID's poderão nunca ser seguidos.

olha bem para o SQL, não interessa que sejam seguidos ou não


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
tiko165

olha bem para o SQL, não interessa que sejam seguidos ou não

Mas da forma que o "I-NOZex" disse, funciona perfeitamente da forma que eu pretendia, por isso


collectioneuro300px.png

Share this post


Link to post
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

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