Ir para conteúdo
Fórum Script Brasil
  • 0

Reorganizar registros no banco


LariLariosb

Pergunta

Boa noite!

Antes de mais nada me perdoem se estou no lugar errado ou se já existe um tópico sobre isso, mas em uma breve pesquisa não encontrei nada parecido. Sou nova aqui e também estou iniciando estudos com PHP.

Eu tenho a lógica de um método que preciso criar, mas não sei por onde começar. É um método de exclusão de registro, ao selecionar a opção excluir de um documento o usuário vai estar ''excluindo'' um valor da tabela cadastrado para esse documento, então na realidade a funcionalidade se chama excluir mas apenas irá atualizar um valor específico para NULL na tabela e manter todo o resto. Suponha que esse valor alterado seja uma coluna de número de Ordem, essa lista de documentos é organizada justamente por esse número. Isso quer dizer que toda vez que eu "excluir" um número de ordem tenho que reorganizar todos os outros números de ordem cadastrados. Não sei muito bem como fazer isso, acredito que nesse método eu pego uma Query que me traz todos os registros de documentos cadastrados que possui um número de ordem já que ele não é obrigatório, pega esse número de ordem que quero excluir e verifica todos os registros que tem número de ordem MAIOR do que ele e faço -1 e vou salvando tudo dentro de um "For" e posteriormente atualizo o meu registro que gostaria de efetuar essa exclusão. 

Acho que a lógica é esta mas não tenho certeza e nem como começar.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

porque o número de ordem precisa ser alterado?
Se ele serve pra apenas para definir a ordem dos documentos tanto faz se é 1, 3 ou mil números acima

Talvez haja uma falha na origem de sua lógica

De qualquer maneira você pode:
1) Se conectar ao database (use mysqli ou pdo)

2) Executar uma query de busca por todos os registros que tenham o número de ordem maior do que o último que foi anulado

3) Para cada registro encontrado, monte e execute  uma query de update decrescendo 1 do valor de ordem

Se tiver dúvidas em como montar e executar as queries, vai postando como está ficando o seu script pra gente tentar ajudar, beleza?

Link para o comentário
Compartilhar em outros sites

  • 0
30 minutos atrás, lowys disse:

porque o número de ordem precisa ser alterado?
Se ele serve pra apenas para definir a ordem dos documentos tanto faz se é 1, 3 ou mil números acima

Talvez haja uma falha na origem de sua lógica

De qualquer maneira você pode:
1) Se conectar ao database (use mysqli ou pdo)

2) Executar uma query de busca por todos os registros que tenham o número de ordem maior do que o último que foi anulado

3) Para cada registro encontrado, monte e execute  uma query de update decrescendo 1 do valor de ordem

Se tiver dúvidas em como montar e executar as queries, vai postando como está ficando o seu script pra gente tentar ajudar, beleza?

O nome número de ordem foi uma forma mais fácil que achei que teria de explicar a lógica da reorganização,  mas na verdade não existe esse número de ordem, existe uma coluna na minha tabela chamada valor de prioridade que um documento vai receber. Essa minha lista inicial traz esses documentos ordenados por esse valor de prioridade. Uma vez que eu excluo(anulo) um valor de prioridade 4, todos os outros registros maiores que 4 precisam ser reorganizados... Vou seguir a sua lógica e volto pra mostrar como ficou, obrigada!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...