osk 0 Denunciar post Postado Julho 20, 2007 o problema e que nao faz o update ja tentei mudar mas nao achei o erro. if(mail($para, $assunto, $msg, $cabecalho)){echo "Mensagem enviada para: $para";@mysql_query("UPDATE". $tabela ." SET codStatus = 1 WHERE id = ". $para);}else{echo "Mensagem não enviada para: $para";} Compartilhar este post Link para o post Compartilhar em outros sites
morpheus_fly 0 Denunciar post Postado Julho 20, 2007 Qual o encoding do banco de dados? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 20, 2007 Update$tabela Esses dois valores estão juntos. Deixe um espaço ali: "Update " . $tabela . "... Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
osk 0 Denunciar post Postado Julho 20, 2007 Eu dei o espaço mas parece que nao deu certo vou posta o code inteiro. <?php$host = "";$banco = ";$usuario = "";$senha = "";$tabela = "";$campos = "";$quant =;$seg =;$nome = "";mysql_connect($host,$usuario,$senha);mysql_select_db($banco);$inicio = $_GET['inicio'];if($inicio == ""){$inicio = 0;}else{$inicio = $_GET['inicio'];}$fim = $inicio + $quant;$sql = mysql_query("SELECT ". $campos ." FROM ". $tabela ." WHERE codStatus = 0 and bloqueado = 0 LIMIT ". $inicio .",". $quant)or die(mysql_error());if(mysql_num_rows($sql) == 0){echo "Fim do processo de envio!";}else{echo "<meta http-equiv=\"refresh\" content=\"" . $seg . ",URL=?inicio=". $fim ."\">";}while($r = mysql_fetch_array($sql)){$para = $r["email"];$cabecalho = "From: $nome <$para> $para";$assunto = "";$msg = "";if(mail($para, $assunto, $msg, $cabecalho)){echo "Mensagem enviada para: $para";@mysql_query(" UPDATE " . $tabela . " SET codStatus = 1 WHERE id = ". $id);}else{echo "Mensagem não enviada para: $para";}}mysql_free_result($sql);}else{echo "<script>location.href='login.php'</script>";}?><br><a href="java script:history.back(1)">Voltar </a> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 20, 2007 $campos e $tabela são strings vazias, por isso não podem ser usadas na SQL, pois gerarão erro mesmo. Preencha-as com valores adequados. Compartilhar este post Link para o post Compartilhar em outros sites
osk 0 Denunciar post Postado Julho 20, 2007 A ta, e que elas estavão preenchidas sim Beraldo eu que tirei =)! Compartilhar este post Link para o post Compartilhar em outros sites
osk 0 Denunciar post Postado Julho 20, 2007 Eu tava lendo o code dnv e vi nao tem nada identificando a string $id, entaum pensei em trocar a linha: @mysql_query(" UPDATE " . $tabela . " SET codStatus = 1 WHERE id = ". $id); para: porque a string $para e o email de quem vai receber a mensagem. @mysql_query(" UPDATE " . $tabela . " SET codStatus = 1 WHERE email = ". $para); Mas so que tb nao deu certo! Compartilhar este post Link para o post Compartilhar em outros sites
netShot 1 Denunciar post Postado Julho 20, 2007 O Campo id é de que tipo ? Inteiro / String ? uma dica, sempre que tenho problemas assim eu executo a Query diretamente no phpMyAdmin ou no MySql Query Browser para ficar mais claro onde está o erro. Faça o mesmo e veja o erro que ele retorna, assim fica mais facil identical onde está o problema. Compartilhar este post Link para o post Compartilhar em outros sites
osk 0 Denunciar post Postado Julho 20, 2007 Isso nao daria certo pq, ele não retorna um erro.Ele so nao atualiza a tabela codStatus.Esse code eu uso ele para enviar Noticias para emails cadastrado no site, so que assim eu quero que quando ele enviar a msg para o destinario mude o codStatus para 1 so para quem ele enviou para que se possa ter um controle. Compartilhar este post Link para o post Compartilhar em outros sites
netShot 1 Denunciar post Postado Julho 20, 2007 ele não retorna erro devido ao arroba(@) que está antes do mysql_query, fica complicado saber o que está acontecendo, mostre-nos a estrutura da tabela, e tente executar uma query dessa no phpMyAdmin e poste o erro que ele retornar para sabermos exatamente onde está o erro. Compartilhar este post Link para o post Compartilhar em outros sites
osk 0 Denunciar post Postado Julho 25, 2007 Ola dnv bom eu achei o pq ele nao alterava o campo enviado, pq a id nao estava incluida em $campos =), e outra por causa ta acentuação nesta linha: @mysql_query("UPDATE " . $tabela . " SET enviado = 1 WHERE id = " . $numero); mas so que apareceu outro problema, quando as aspas no começo do UPDATE for UPDATE" ele nao atualiza a tabela e a função continua, mas quando ela esta assim UPDATE " . $tabela . " ele atualiza, mas so que nao continua a função ele termina a função logo que manda o primeiro email. Alguem sabe o pq? <?session_start("admin");if($_SESSION["admin"] == "on"){require ("../config.php");$tabela = "newsletter";$campos = "id, email";$quant = 1;$seg = 3;$assunto = "Noticia";$inicio = $_GET["inicio"];if($inicio == ""){$inicio = 0;}else{$inicio = $_GET["inicio"];}$fim = $inicio + $quant;$sql = mysql_query("SELECT ". $campos ." FROM ". $tabela ." WHERE enviado = 0 and bloqueado = 0 LIMIT ". $inicio .",". $quant)or die(mysql_error());if(mysql_num_rows($sql) == 0){echo "<span class='style1'>Fim do processo de envio!</span>";}else{echo "<meta http-equiv=\"refresh\" content=\"" . $seg . ",URL=?inicio=". $fim ."\">";}while($lista = mysql_fetch_array($sql)){$email = $lista["email"];$numero = $lista["id"];@mysql_query("UPDATE " . $tabela . " SET enviado = 1 WHERE id = " . $numero);$cabecalho = "From: $nome <$email> $email";$mensagem = "";if(imap_mail($email, $assunto, $mensagem, $cabecalho)){echo "<span class='style1'>Mensagem enviada para: $email ($numero)</span>";}else{echo "<span class='style1'>Mensagem não enviada para: $email ($numero)</span>";}}}else{echo "<script>location.href='login.php'</script>";}?><style type="text/css"><!--.style1 {color: #ff9a00}--></style> Compartilhar este post Link para o post Compartilhar em outros sites
Hamilcar 1 Denunciar post Postado Julho 25, 2007 Ola dnv bom eu achei o pq ele nao alterava o campo enviado, pq a id nao estava incluida em $campos =), e outra por causa ta acentuação nesta linha: @mysql_query("UPDATE " . $tabela . " SET enviado = 1 WHERE id = " . $numero); mas so que apareceu outro problema, quando as aspas no começo do UPDATE for UPDATE" ele nao atualiza a tabela e a função continua, mas quando ela esta assim UPDATE " . $tabela . " ele atualiza, mas so que nao continua a função ele termina a função logo que manda o primeiro email. Alguem sabe o pq? osk, estive verificando seu cod, não sei se é isto, mas acredito que seja. No início do script você seta os valores das variáveis e uma delas é '$quant = 1;' e no seu sql você faz assim '$sql = mysql_query("SELECT ". $campos ." FROM ". $tabela ." WHERE enviado = 0 and bloqueado = 0 LIMIT ". $inicio .",". $quant)or die(mysql_error());' da maneira que esta você está buscando somente um email mesmo, pois o seu sql tem um início pra começar a buscar mas o limite é 1 registro, faz o que o colega lá em cima sugeriu, coloque seu cod no phpmyadmin ou em outro qualquer e faça a pesquiza no bd pra ver se retorna só 1 registro mesmo, abraços. Compartilhar este post Link para o post Compartilhar em outros sites
osk 0 Denunciar post Postado Julho 25, 2007 Hum achu agora entendi o que você quis dizer, entaum vamu la, mudei $quant para 2 e ele realmente busca os 2 e muda a tabela enviado para 1 como eu tambem pedi, mas so que quando ele envia ele envia de uma so vez para os 2 e termina a funcao , e o resto ele nao envia, teria como ele continuar enviando sem para e mudando a tabela enviado para 1? Compartilhar este post Link para o post Compartilhar em outros sites