Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Amilton Aquino

Mistério no MySQL

Recommended Posts

Olá pessoal,Estou com um enigma que ainda não consegui identificar. O fato é que tenho uma Newsletter que envia os emaisl para cada um dos emails cadastrados no nosso banco de dados idividualmente. A cada envio ele faz atualiza o campo status de 2 (não enviado ainda) para 1 (enviado), o que faz com que o próximo cliente com o número 2 seja a bola da vez. O problema é que ao chegar em um registro específico ele pára. Ao atualizar o registros da vez que não foi enviado (onde parou) eu filtro a Newsletter só para os que não receberam e ele continuar até o final. O problema é que o caso se repetiu. Tentei atualizar o registro para continuar, mas isto não mais resolveu. Deletei então o referido registro e a Newsletter seguiu até o final. O que pode estar ocorrendo? Vale salientar que esta Newslette já funciona normalemente em outro site e nunca ocorreu tal problema.Agradeço antecipadamente,Amilton Aquino

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparenta ser erro de programação, não do MySQL.

<{POST_SNAPBACK}>

Como disse, este código já funciona perfeitamente em dois outros sites e nunca me defrontei com este problema. Além do mais é muito estranho que ao apagar um dado do banco (o cliente da vez) o código continue até o final sem dar erro. Permanece a dúvida.

 

Segue o código:

 

<?phpsession_start();ob_start(); mysql_select_db($database_webmais, $webmais);$query_Recordset1 = "SELECT * FROM newsletter_ursers WHERE U_NEWS_SEND=2"; $Recordset1 = mysql_query($query_Recordset1, $webmais) or die(mysql_error()); /* Aqui eu seleciono o cliente da vez */$row_Recordset1 = mysql_fetch_assoc($Recordset1);$totalRows_Recordset1 = mysql_num_rows($Recordset1);?><?php if ($totalRows_Recordset1!=0) {  /* se existe cliente da vez então envia.  */?> 	<?php	$User_id = $row_Recordset1['ID']; 	$EmailRemete = "webmaster@infojurisltda.com.br";	$NomeDestino = $row_Recordset1['Nome']; 	$EmailDestino = $row_Recordset1['EMAIL']; 	$EmailsCC = $row_Recordset1['EMAILCC']; 	$assunto = "Newslleter Infojuris";	$mensagem  = "<hr><center><font face=\"arial\" size=\"1\">Caso não deseje mais receber nosso boletim de notícias, <a href=\"".(URL)."/Newsletter/remover.php?id=".$User_id."&email=".$EmailDestino."&table=newsletter_ursers\">clique aqui</a></font></center></body></html>"; /* Isto é uma adaptação para o envio de email via Hostnet */    $headers  = 'MIME-Version: 1.0' . "\r\n";	$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";    $headers .= "From: $nomeRemete <$EmailRemete>";    $enviar=mail($EmailDestino,$assunto,$mensagem,$headers);      if ($enviar==1){ // checa se e-mail foi enviado          $mensagemStatus = "E-mail enviado com sucesso!";      }else{          $mensagemStatus = "Erro ao enviar o e-mail. Por favor, tente novamente.";      }	mysql_free_result($Recordset1);	if ($enviar==0) {  /* Se o email foi enviado, atualiza o registro do clinte  */  mysql_select_db($database_webmais, $webmais);  $sql = "UPDATE newsletter_ursers SET U_NEWS_SEND=1, ID_NEWSLETTER_LAST =".$_GET['id_newsletter'].", HITS_NEWSLETTER=HITS_NEWSLETTER+1 WHERE ID=".$User_id."";  $resultado = mysql_query($sql)  or die ("Não foi possível realizar a consulta ao banco de dados 1");	} else { /* se não foi enviado o email, atualiza o registro do cliente inclusive com erro do email */  mysql_select_db($database_webmais, $webmais);  $sql = "UPDATE newsletter_ursers SET  U_NEWS_SEND=1, HITS_NEWSLETTER=HITS_NEWSLETTER+1, U_FALHA=U_FALHA+1, U_FALHA_ASSUNTO='".$assunto."', ID_NEWSLETTER_LAST =".$_GET['id_newsletter']." WHERE ID=".$User_id."";  $resultado = mysql_query($sql)  or die ("Não foi possível realizar a consulta ao banco de dados 2");	} ?>  <table width="100%"  border="0" cellspacing="0" cellpadding="0">    <tr> 	 <td> </td>    </tr>    <tr> 	 <td>Enviado <b><?php echo $Registros ?></b> registros para os emails para <b>"<?php echo $EmailDestino ?>"</b> <hr><?php if ($_GET['ID_LOG']==0) { ?>     Total de clientes habilitados no sistema: <b><?php echo $_GET['totalUsersHabilit'] ?></b><br>     Clientes enviados: <b><?php echo $_GET['totalUsersEnviados'] ?></b><br>    Clientes restantes: <b><?php echo $_GET['totalUsersRestantes'] ?></b>  <?php } ?>      </td>    </tr>    <tr>      <td align="center"><a href="admin.php?inc=ListLog&Menu=1">Interromper </a></td>       </tr>  </table>  <!-- Este refresh tem a função de oferecer a opção de diminuir o intervalo entre um envio e outro, para evitar sobrecarregar o servidor. Ele envia as variáveis para a página "admin_enviaContador_prs.php" que logo em seguida devolve as variáveis enviadas para o envio do próximo clienet -->    <meta HTTP-EQUIV='REFRESH' content='<?php echo $_GET['velocidade'] ?>; url=admin_enviaContador_prs.php?velocidade=<?php echo $_GET['velocidade'] ?>&totalUsersHabilit=<?php echo $_GET['totalUsersHabilit'] ?>&totalUsersRestantes=<?php echo $_GET['totalUsersRestantes'] - 1 ?>&totalUsersEnviados=<?php echo $_GET['totalUsersEnviados'] +1 ?>&table=<?php echo $_GET['table'] ?>&id_newsletter=<?php echo $_GET['id_newsletter'] ?>'>   	 <b>Status do envio</b> = <?php echo $mensagemStatus ?><HR>    <b>Corpo da Newsletter enviada:</b>                <?php echo $corpo  ?><?php } else { ?><p> </p><div align="center"><b>Newsletter Concluída!<br>    <a href="admin.php?inc=list"><br>  Lista de Newsletters</a> <br>  <br>  <a href="admin.php?inc=insert">Criar nova Newsletter</a></b></div><?php }?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.