Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Manipulando uma lista de itens no PDO

Olá pessoal, tenho uma funcionalidade para cadastrar lista exemplo: PRIORIDADES:

  • Família
  • Saúde
  • Profissional

Periodicamente essa lista pode ser modificada ou seja,

  • vou precisar editar a descrição dos itens existentes
  • vou precisar incluir novos itens na lista existente

Como posso montar uma função em PDO para fazer o UPDATE caso algum item seja alterado ou um INSERT caso um produto seja incluído? O grande problema é que a lista pode conter itens a serem salvos e outros itens a serem alterados na mesma tabela. Estou querendo fazer esses procedimentos apertando ao apertar em salvar.

4 respostas

Oi Hermogenes, tudo bem?

Deixa eu ver se eu entendi. Você tem uma tabela chamada prioridades, que tem registros do tipo familia saúde e profissional? O problema está ao tentar atualizar os dados dessa tabela?

Se você quiser, compartilha seu código aqui com a gente. Assim fica mais fácil entender o cenário/simular o problema =)

Olá André! exatamente, estou conseguindo alterar e salvar tranquilamente mas de forma isolada só salvo ou só altero.

A duvida está na hora de Salvar e Alterar ao mesmo tempo imagina o cenário:

LISTA PRIORIDADE

  • saúde
  • família obs: supondo que os dados acima estão gravados no banco e estão sendo mostrado na tela para o usuário em forma de lista.

Então o usuário decide alterar a lista e incluir outros dados da seguinte forma:

LISTA PRIORIDADE

  • saúde física //registro sendo alterado
  • família materna //registro sendo alterado
  • desenvolvimento pessoal //registro sendo incluído
  • financeiro // registro sendo incluído

Todos esses dados devem ser modificados no banco ao clicar o botão salvar. Nesse caso gostaria de dicas para fazer esse procedimento sem uso de gambiarras e sem complicar.

solução!

Oi Hermogenes, tudo bom?

Uma abordagem é ao atualizar, sempre remover todos e adicionar novamente. Assim, a gente tem sempre o estado correto no final.

Outra abordagem é comparar os estavam registrados na base com os que foram passados pelo formulário e descobrir quais são novos e quais foram removidos. Assim você vai direto e remove só os que precisa, depois adiciona só os que precisa também. Desse jeito a gente também chega no estado correto no final mas com um pouco mais de lógica envolvida.

Esse tipo de procedimento mais avançado de alinhamento entre a base e o modelo costuma ser feito por ferramentas de mapeamento entre o modelo relacional e o modelo orientado a objetos, mais conhecida como ORM (Object Relational Mapper) =)

Os ORMs costumam usar o próprio PDO por baixo dos panos, mas abstraem essa camada mais chata de gerenciar os dados.

Se você quiser, da uma procurada depois no Doctrine ou no Eloquent que são os dois ORMs mais famosos em PHP =)

Grande André, era esse tipo de resposta que precisava muito obrigado, vou optar pela primeira alternativa por se muito prática, já havia pensando nela no entanto imaginei que não fosse utilizada no mercado.

Houve uma época aplicava a solução mais complexa mas com o passar do tempo aprendi que isso atrapalhada o andamento do projeto.

Quanto ao uso do Frameworks vou ganhar mais experiência em PHP para aplica-los nos projetos.

vlw parceiro.