Jump to content


Photo

Descobrir Próxima Linha Do Bd


  • Faça o login para participar
2 replies to this topic

#1 Henderson

Henderson

    12 Horas

  • Usuários
  • 279 posts
  • Sexo:Não informado
  • Localidade:Santos

Posted 27/01/2008, 18:14

ae..
seguinte.. to fazendo um script aqui no qual corro o bd, por todas as linhas pra executar uma função, qe deve ser executada com todos os usuários do bd..
a função é demorada e tal, e por alguns motivos, eu preciso fazer da forma como to fazendo..

eu faço o seguinte
pego o ID da querystring, executo a função desse usuário e então, eu uso header("Location: .."); pra dá um refresh e executar isso com o próximo usuário..

mas como fazer isso?
como eu faço pra saber qual é o próximo usuário?
eu tenho um campo auto_increment na tabela do bd mysql..
mas não posso simplesmente somar 1 ao ID, porque aí esse registro pode não existir mais, entendem?

o qe eu tenho qe fazer, é por exemplo
to atualizando o registro do id 400..
então, de algum jeito tenho qe pegar o próximo registro, qe será o 401 se não tiver sido deletado, se tiver, tem qe ser o 402.. e assim sucessivamente..

não sei se fui muito claro, mas acho qe deu pra entender

resumindo, eu tenho um valor de um ID (campo auto_increment) e tenho que achar o valor do próximo..

Edição feita por: Henderson, 27/01/2008, 18:24.


#2 leo seixas

leo seixas

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 28/01/2008, 13:10

ae..
seguinte.. to fazendo um script aqui no qual corro o bd, por todas as linhas pra executar uma função, qe deve ser executada com todos os usuários do bd..
a função é demorada e tal, e por alguns motivos, eu preciso fazer da forma como to fazendo..

eu faço o seguinte
pego o ID da querystring, executo a função desse usuário e então, eu uso header("Location: .."); pra dá um refresh e executar isso com o próximo usuário..

mas como fazer isso?
como eu faço pra saber qual é o próximo usuário?
eu tenho um campo auto_increment na tabela do bd mysql..
mas não posso simplesmente somar 1 ao ID, porque aí esse registro pode não existir mais, entendem?

o qe eu tenho qe fazer, é por exemplo
to atualizando o registro do id 400..
então, de algum jeito tenho qe pegar o próximo registro, qe será o 401 se não tiver sido deletado, se tiver, tem qe ser o 402.. e assim sucessivamente..

não sei se fui muito claro, mas acho qe deu pra entender

resumindo, eu tenho um valor de um ID (campo auto_increment) e tenho que achar o valor do próximo..


Henderson, pelo que eu entendi ... simplesmente vc tem que fazer uma consulta no banco de dados ordenado por ID ... e depois executando a fucão para cada ID... os IDs deletetados não aparecerão ... nem precisa desse lance de saber quem é o próximo ... isso o php faz automaticamente ...

já que vc falou que o script demora muito para rodar ... coloca um set_time_limit(900) no início do programa ...

[]s
Leo

#3 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 28/01/2008, 13:17

SELECT MAX(id) FROM tabela WHERE id > $_GET["id"]
Há outras formas melhores para casos específicos, mas isso aqui vai funcionar em qualquer situação.
Você disse que tem seus motivos para fazer assim e acredito, mas chegou a pensar em stored procedures?




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq