Jump to content
Fórum Script Brasil
  • 0

Reorganizar registros no banco


Question

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 to post
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148906
    • Total Posts
      644997
×
×
  • Create New...