Ir ao conteúdo
  • Cadastre-se

PHP Lógica de Id Sequencial por dia, mês e hora


Posts recomendados

Boa tarde pessoal! Preciso de ajuda para desenvolver uma lógica.

 

Quero disparar 1 mil e-mails/dia (100 por hora - das 8hr as 18hrs) e vou usar um select limit 100 para buscar os registros no meu banco de dados.

 

Acontece que eu não posso repetir os registros e não vou saber quais e-mails já foram enviados. Então, eu preciso pegar os 100 primeiros registros as 8hrs, depois do 101 ao 200 as 09hrs...e assim por diante

 

Eu poderia estabelecer isso, por ex, por dia, sendo dia 21 todos os registros que começarem com 21, dia 22 todos os registros que começarem com 22, e assim por diante.

 

O problema é que quando começar outro mês, vai repetir os registros, e eu gostaria de deixar automático até terminarem todos os registros da tabela.

 

Alguém tem uma ideia de como eu poderia fazer isso, sem gravar os envios?

 

Por favor!

 

Obrigado

Link para o comentário
Compartilhar em outros sites

  • Moderador

@nldj Você pode tentar resolver isso, acrescentando um novo campo na tabela do seu banco de dados.. um campo do tipo TINYINT... pois só vai aceitar  0 ou 1

 

No caso, 0 para não enviado,  1 para enviado....Então quando for fazer o select dos 100 primeiros, ao enviar o e-mail, você edita a tabela nesses registros, trocando de 0 para 1...  e dai por diante... Fazendo assim você tem controle para saber quais já foram enviados.. 

 

Outro meio de resolver, é criar uma nova tabela, e inserir os registros dela de acordo com o enviado..  Nesse caso, você teria que fazer um relacionamento entre as tabelas.. para ter uma chave estrangeira pegando a chave primária da outra tabela...  Dessas, acho que é mais fácil a primeira solução... porque aí cabe a fazer a condição no php de IF-else.. onde você coloca no IF, Se enviado...  fazer a instrução de alterar o campo da tabela.. 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

Obrigado @DiF

 

Eu queria uma solução para não criar um campo na tabela e tampouco outra tabela.

 

Pensei em fazer algo do tipo:

 

- date("t") para me retornar a quantidade de dias cada mês.

- se vou enviar 1 mil e-mails por dia, logo, no dia 01/01/2023 terei enviado até o Id 1000 e no final do dia 31/01/2023 terei enviado até o Id 31000.

- Se eu sei que envio 1 mil e-mails por dia, para eu saber em qual Id parei, por ex, dia 20/01/2023, basta fazer o calculo de quantos dias faltam para terminar o mês e completar a soma dos 31000 envios. Nesse caso, dia 20/01/2023, terei parado no Id 21000

 

Essa lógica doida, deve dar certo se eu fiz os cálculos certinho, usando um for para fazer o loop 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@nldj Bem.. tenta ai.  Mas ainda recomendo que a solução mais prática é ter uma tabela específica para os enviados, parando para pensar.

Você faz os envios... resgata o id pelo loop e faz um insert na tabela de enviados.

Isso já entra na regra da 2NF de banco de dados.. 

 

Pense nessa analogia:

a sua solução ,  você tem uma quadra, onde os prédios não possuem muros, e é aberto embaixo...   mas você quer dar a volta na quadra pela calçada para chegar do outro lado.

 

A minha sugestão, simplesmente atravessar por dentro dos prédios até chegar do outro lado.

 

Mas como eu disse, é apenas uma sugestão de solução. você pode pensar em N formas... Se é a melhor... somente você vai decidir. 

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!