SHWE12 1 Denunciar post Postado Maio 7, 2010 Boa Noite Galera... estou com um problema de concatenação, criei um while e tudo certo, mas quando tento concatenar a chave para fechar o while ele dá um erro Parse error: syntax error, unexpected '}' in /home/ibatista/public_html/shop/sis/newsletter/formail.php on line 151 <? session_start("admin"); $_SESSION["n"] = $n; $_SESSION["remetente"] = $remetente; $_SESSION["assunto"] = $assunto; $_SESSION["imagem"] = $imagem; $_SESSION["r_produto"] = $r_produto; if($_SESSION["admin"] == "on") { require('../../admin/permissao.php'); $conexao=@mysql_connect($servidor,$usuario,$senha) or exit ('erro de conexao'); @mysql_select_db($base_dados,$conexao) or exit ('erro na conexão com o Banco'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Loja Virtual - IBR Shopping (Sistema Admin)</title> <link href="http://www.ibrbirigui.com.br/shop/sis/css/estilos.css" rel="stylesheet" type="text/css"/> <link href="http://www.ibrbirigui.com.br/shop/sis/css/estilos.css" rel="stylesheet" type="text/css"/> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="143" align="center" background="../../imagens/back.png"> <table width="900" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <img src="../imagens/topo_sis.jpg" alt="" width="900" height="200" border="0" /></td> </tr> </table></td> </tr> </table> <table width="100%" height="233" border="0" cellpadding="1" cellspacing="1"> <tr> <td height="30" align="center" valign="middle" bgcolor="#333333" class="topo">Envio de Newsletter</td> </tr> <tr> <td height="148" align="center" valign="middle" class="texto_bottom"><label> <? // DADOS DE ACESSO AO BANCO MYSQL require('config.php'); $n = $_SESSION["n"]; $remetente = $_SESSION["remetente"]; // NOME DA TABELA $tabela = "newsletter"; // CAMPOS UTILIZADOS PARA A CONSULTA $campos = "id, email"; // NUMERO MÁXIMO DE ENVIO $quant = 1; // TEMPO ENTRE UM PROCESSO DE ENVIO E OUTRO $seg = 4; $imagem = $_SESSION["imagem"]; $r_produto = $_SESSION["r_produto"]; $msg = ' <html> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="http://www.ibrbirigui.com.br/shop/newsletter/imagens/news_topo.jpg" width="600" height="394" /></td> </tr> <tr> <td height="302" valign="top"> <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" align="left" valign="middle">'. $id = $_SESSION["r_produto"]; $consulta = "SELECT * FROM produtos WHERE (id=$id)"; $retorno = mysql_query($consulta,$conexao); $campos = mysql_fetch_assoc($retorno).' </td> </tr> <tr> <td width="158" align="left" valign="top"> <img src="http://www.ibrbirigui.com.br/shop/sis/imagens/produtos/'.$campos['foto'].'" alt="'.$campos['nome'].'" width="150" border="0" align="middle" /></td> <td width="430" align="left" valign="top"> <p> <a class="texto_menu_negrito2">'.$campos['nome'].'</a><br /> <a class="texto_bottom"> <strong>Código do Produto:</strong></a> <a class="texto_bottom">'.$campos['cod_produto'].'</a><br /> <br /> <a class="texto_menu_negrito2"><strong>Valor à vista R$</strong>'. $valor_vista = $campos['valor']; $valor_dec = number_format($valor_vista, 2, ',', '.'); print $valor_dec.' </a>'. $valor_parcelado = $campos["valor_prazo"]/$campos['parcelas']; $valor_parcelado_format = number_format($valor_parcelado, 2, ',', '.').' </p> <div align="justify"> <a class="texto_bottom">'.nl2br($campos['descricao']).'</a></div></td> </tr> </table><br /><br />'. $consulta= "SELECT * FROM produtos ORDER BY rand() LIMIT 6"; $retorno = mysql_query($consulta,$conexao); while($campos = mysql_fetch_assoc($retorno)) { $valor_vista = $campos['valor']; $valor_vista_formatado = number_format($valor_vista, 2, ',', '.'); $valor_prazo = $campos['valor_prazo']; $valor_prazo_formatado = number_format($valor_prazo, 2, ',', '.'); $id = $campos['id'].' <div style="float: left; "> <table width="238" border="0" cellpadding="1" cellspacing="1" > <tr> <td width="234" height="105" align="center"> <img src="http://www.ibrbirigui.com.br/sis/imagens/produtos/'.$campos['foto'].'" alt="'.$campos['nome'].'" height="100" border="0" align="middle" /></td> </tr> <tr> <td height="60" align="center" valign="top"> <a class="link_menu2">'.$campos['nome'].'</a><br /> <a class="topo_menor">Por: '.$valor_vista.'</a><br />'. $categoria = $campos["categoria"]; $consulta_cat = "SELECT * FROM categoria WHERE id = '$categoria'"; $retorno_cat = mysql_query($consulta_cat,$conexao); $campos_cat = mysql_fetch_assoc($retorno_cat).' <a class="texto_menu"><b>Veja mais '.$campos_cat["nome"].'</b></a></td> </tr> </table> </form> </div> '.}.' //o erro está aqui </td> </tr> <tr> <td><img src="../imagens/news_rodape.jpg" width="600" height="198" /></td> </tr> </table> <map name="Map" id="Map"> <area shape="rect" coords="4,4,96,98" href="http://www.ibrbirigui.com.br/shop/detalhes.php?id='.$campos['id'].'" /> </map> </html> '; // DADOS DO EMAIL A SER ENVIADO $assunto = $_SESSION["assunto"]; // CONECTA COM O SERVIDOR MYSQL mysql_connect($host,$usuario,$senha); // SELECIONA O BANCO mysql_select_db($banco); // RESGATA O VALOR DA GLOBAL INICIO $inicio = $_GET["inicio"]; // VERIFICA SE FOI ATRIBUIDO VALOR A VARIAVEL "INICIO" if($inicio == "") { // ATRIBUI O VALOR 0 CASO NÃO EXISTA VALOR ATRIBUIDO $inicio = 0; } else { // ATRIBUI O VALOR DA GLOBAL INICIO CASO JA EXISTA VALOR ATRIBUIDO $inicio = $_GET["inicio"]; } // ATRIBUI O RESULTADO DA SOMA ENTRE INICIO E QUANT $fim = $inicio + $quant; // EXECUTA A CONSULTA OU INFORMA UM ERRO CASO OCORRA $sql = mysql_query("SELECT ". $campos ." FROM ". $tabela ." WHERE enviado = 0 LIMIT ". $inicio .",". $quant)or die(mysql_error()); // VERIFICA SE AINDA EXISTEM EMAILS A SEREM ENVIADOS if(mysql_num_rows($sql) == 0) { // INFORMO O TÉRMINO DO PROCESSO echo "<span class='style1'>Fim do processo de envio!</span>"; $consulta= "SELECT * FROM newsletter ORDER BY id asc "; $retorno = mysql_query($consulta,$conexao); while($campos = mysql_fetch_assoc($retorno)) { $id_ant = $campos['id']; $consulta2 = "UPDATE newsletter SET enviado ='0' WHERE id='$id_ant'"; mysql_select_db($base_dados, $conexao); $Result1 = mysql_query($consulta2, $conexao) or die(mysql_error()); print "".$campos['email']." realocado com sucesso "; print "<br>"; } } else { // CONTINUA EFETUANDO O ENVIO echo "<meta http-equiv='refresh' content='$seg,URL=?inicio= $fim'>"; } // CRIA O LAÇO REPETITIVO while($r = mysql_fetch_assoc($sql)) { // ADICIONAMOS OS PADRÕES DE DESTINATÁRIO $para = $r['email']; $id = $r['id']; $cabecalho = "MIME-Version: MSHTML 6.00.2900.3157\r\n"; $cabecalho = "Content-type: text/html; charset=iso-8859-1\r\n"; $cabecalho .= "Content-Type: text/html; charset=windows-1252\r\n"; $cabecalho .= "From:$remetente<$n>\r\n"; $cabecalho .= "Reply-to:<$remetente>\r\n"; // ENVIA O EMAIL PARA O DESTINATÁRIO if(mail($para, $assunto, $msg, $cabecalho)) { // INFORMA SE A MENSAGEM FOI ENVIADA echo "<span class='style1'>Mensagem enviada para: $para ($id)</span>"; // ALTERO O CODSTATUS PARA 1 @mysql_query("UPDATE newsletter SET enviado = '1' WHERE email = '$para'"); } else { // INFORMO SE A MENSAGEM NÃO FOI ENVIADA echo "<span class='style1'>Mensagem não enviada para: $para ($id)</span>"; } } // LIBERA MEMORIA USADA NA CONSULTA mysql_free_result($sql); } ?></label></td> </tr> <tr> <td height="51" align="center" valign="middle" class="texto_bottom"><img src="../../imagens/ferramentas_sis.png" width="20" height="20" /> <a href="../index.php" class="texto_bottom">Voltar para Sistema</a></td> </tr> </table> </body> </html> O ERRO ESTÁ NA SEGUINTE LINHA: '.}.' //o erro está aqui Compartilhar este post Link para o post Compartilhar em outros sites
RafaelCps2 0 Denunciar post Postado Maio 7, 2010 Amigo, seu código ta meio bagunçado :s ve se isso concerta... <? session_start("admin"); $_SESSION["n"] = $n; $_SESSION["remetente"] = $remetente; $_SESSION["assunto"] = $assunto; $_SESSION["imagem"] = $imagem; $_SESSION["r_produto"] = $r_produto; if($_SESSION["admin"] == "on") { require('../../admin/permissao.php'); $conexao=@mysql_connect($servidor,$usuario,$senha) or exit ('erro de conexao'); @mysql_select_db($base_dados,$conexao) or exit ('erro na conexão com o Banco'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Loja Virtual - IBR Shopping (Sistema Admin)</title> <link href="http://www.ibrbirigui.com.br/shop/sis/css/estilos.css" rel="stylesheet" type="text/css"/> <link href="http://www.ibrbirigui.com.br/shop/sis/css/estilos.css" rel="stylesheet" type="text/css"/> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="143" align="center" background="../../imagens/back.png"> <table width="900" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <img src="../imagens/topo_sis.jpg" alt="" width="900" height="200" border="0" /></td> </tr> </table></td> </tr> </table> <table width="100%" height="233" border="0" cellpadding="1" cellspacing="1"> <tr> <td height="30" align="center" valign="middle" bgcolor="#333333" class="topo">Envio de Newsletter</td> </tr> <tr> <td height="148" align="center" valign="middle" class="texto_bottom"><label> <? // DADOS DE ACESSO AO BANCO MYSQL require('config.php'); $n = $_SESSION["n"]; $remetente = $_SESSION["remetente"]; // NOME DA TABELA $tabela = "newsletter"; // CAMPOS UTILIZADOS PARA A CONSULTA $campos = "id, email"; // NUMERO MÁXIMO DE ENVIO $quant = 1; // TEMPO ENTRE UM PROCESSO DE ENVIO E OUTRO $seg = 4; $imagem = $_SESSION["imagem"]; $r_produto = $_SESSION["r_produto"]; $msg = ?> <html> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="http://www.ibrbirigui.com.br/shop/newsletter/imagens/news_topo.jpg" width="600" height="394" /></td> </tr> <tr> <td height="302" valign="top"> <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" align="left" valign="middle"> <? $id = $_SESSION["r_produto"]; $consulta = "SELECT * FROM produtos WHERE (id=$id)"; $retorno = mysql_query($consulta,$conexao); $campos = mysql_fetch_assoc($retorno); ?> </td> </tr> <tr> <td width="158" align="left" valign="top"> <img src="http://www.ibrbirigui.com.br/shop/sis/imagens/produtos/<? echo $campos['foto'] ?>" alt="<? echo $campos['nome']?>" width="150" border="0" align="middle" /></td> <td width="430" align="left" valign="top"> <p> <a class="texto_menu_negrito2"><? echo $campos['nome']?></a><br /> <a class="texto_bottom"> <strong>Código do Produto:</strong></a> <a class="texto_bottom"><? echo $campos['cod_produto'] ?></a><br /> <br /> <a class="texto_menu_negrito2"><strong>Valor à vista R$</strong> <? $valor_vista = $campos['valor']; $valor_dec = number_format($valor_vista, 2, ',', '.'); print $valor_dec; ?> </a> <? $valor_parcelado = $campos["valor_prazo"]/$campos['parcelas']; $valor_parcelado_format = number_format($valor_parcelado, 2, ',', '.'); ?> </p> <div align="justify"> <a class="texto_bottom"><? echo nl2br($campos['descricao']) ?></a></div></td> </tr> </table><br /><br /> <? $consulta= "SELECT * FROM produtos ORDER BY rand() LIMIT 6"; $retorno = mysql_query($consulta,$conexao); while($campos = mysql_fetch_assoc($retorno)) { $valor_vista = $campos['valor']; $valor_vista_formatado = number_format($valor_vista, 2, ',', '.'); $valor_prazo = $campos['valor_prazo']; $valor_prazo_formatado = number_format($valor_prazo, 2, ',', '.'); $id = $campos['id']; ?> <div style="float: left; "> <table width="238" border="0" cellpadding="1" cellspacing="1" > <tr> <td width="234" height="105" align="center"> <img src="http://www.ibrbirigui.com.br/sis/imagens/produtos/'.$campos['foto'].'" alt="'.$campos['nome'].'" height="100" border="0" align="middle" /></td> </tr> <tr> <td height="60" align="center" valign="top"> <a class="link_menu2"><? echo $campos['nome'] ?></a><br /> <a class="topo_menor">Por: <? echo $valor_vista ?></a><br />'. <? $categoria = $campos["categoria"]; $consulta_cat = "SELECT * FROM categoria WHERE id = '$categoria'"; $retorno_cat = mysql_query($consulta_cat,$conexao); $campos_cat = mysql_fetch_assoc($retorno_cat); ?> <a class="texto_menu"><b>Veja mais <? echo $campos_cat["nome"] ?></b></a></td> </tr> </table> </form> </div> <? } ?> </td> </tr> <tr> <td><img src="../imagens/news_rodape.jpg" width="600" height="198" /></td> </tr> </table> <map name="Map" id="Map"> <area shape="rect" coords="4,4,96,98" href="http://www.ibrbirigui.com.br/shop/detalhes.php?id='.$campos['id'].'" /> </map> </html> <? ; // DADOS DO EMAIL A SER ENVIADO $assunto = $_SESSION["assunto"]; // CONECTA COM O SERVIDOR MYSQL mysql_connect($host,$usuario,$senha); // SELECIONA O BANCO mysql_select_db($banco); // RESGATA O VALOR DA GLOBAL INICIO $inicio = $_GET["inicio"]; // VERIFICA SE FOI ATRIBUIDO VALOR A VARIAVEL "INICIO" if($inicio == "") { // ATRIBUI O VALOR 0 CASO NÃO EXISTA VALOR ATRIBUIDO $inicio = 0; } else { // ATRIBUI O VALOR DA GLOBAL INICIO CASO JA EXISTA VALOR ATRIBUIDO $inicio = $_GET["inicio"]; } // ATRIBUI O RESULTADO DA SOMA ENTRE INICIO E QUANT $fim = $inicio + $quant; // EXECUTA A CONSULTA OU INFORMA UM ERRO CASO OCORRA $sql = mysql_query("SELECT ". $campos ." FROM ". $tabela ." WHERE enviado = 0 LIMIT ". $inicio .",". $quant)or die(mysql_error()); // VERIFICA SE AINDA EXISTEM EMAILS A SEREM ENVIADOS if(mysql_num_rows($sql) == 0) { // INFORMO O TÉRMINO DO PROCESSO echo "<span class='style1'>Fim do processo de envio!</span>"; $consulta= "SELECT * FROM newsletter ORDER BY id asc "; $retorno = mysql_query($consulta,$conexao); while($campos = mysql_fetch_assoc($retorno)) { $id_ant = $campos['id']; $consulta2 = "UPDATE newsletter SET enviado ='0' WHERE id='$id_ant'"; mysql_select_db($base_dados, $conexao); $Result1 = mysql_query($consulta2, $conexao) or die(mysql_error()); print "".$campos['email']." realocado com sucesso "; print "<br>"; } } else { // CONTINUA EFETUANDO O ENVIO echo "<meta http-equiv='refresh' content='$seg,URL=?inicio= $fim'>"; } // CRIA O LAÇO REPETITIVO while($r = mysql_fetch_assoc($sql)) { // ADICIONAMOS OS PADRÕES DE DESTINATÁRIO $para = $r['email']; $id = $r['id']; $cabecalho = "MIME-Version: MSHTML 6.00.2900.3157\r\n"; $cabecalho = "Content-type: text/html; charset=iso-8859-1\r\n"; $cabecalho .= "Content-Type: text/html; charset=windows-1252\r\n"; $cabecalho .= "From:$remetente<$n>\r\n"; $cabecalho .= "Reply-to:<$remetente>\r\n"; // ENVIA O EMAIL PARA O DESTINATÁRIO if(mail($para, $assunto, $msg, $cabecalho)) { // INFORMA SE A MENSAGEM FOI ENVIADA echo "<span class='style1'>Mensagem enviada para: $para ($id)</span>"; // ALTERO O CODSTATUS PARA 1 @mysql_query("UPDATE newsletter SET enviado = '1' WHERE email = '$para'"); } else { // INFORMO SE A MENSAGEM NÃO FOI ENVIADA echo "<span class='style1'>Mensagem não enviada para: $para ($id)</span>"; } } // LIBERA MEMORIA USADA NA CONSULTA mysql_free_result($sql); } ?></label></td> </tr> <tr> <td height="51" align="center" valign="middle" class="texto_bottom"><img src="../../imagens/ferramentas_sis.png" width="20" height="20" /> <a href="../index.php" class="texto_bottom">Voltar para Sistema</a></td> </tr> </table> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Maio 7, 2010 nao deu certo nao amigo.. deu erro na linha que inicia o $msg = Compartilhar este post Link para o post Compartilhar em outros sites
joao.neto 0 Denunciar post Postado Maio 7, 2010 não entendi porque você quer 'concatenar' a chave com a string..... acho que o que você quer é fechar a string, fechar o while e imprimir o que vem depois..... acho que seria algo mais ou menos assim naquele ponto.... ... </table> </form> </div> '; } echo ' </td> </tr> .... Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Maio 7, 2010 o erro agora é esse: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `newsletter` WHERE `enviado` = 0 LIMIT 0, 1' at line 1 Compartilhar este post Link para o post Compartilhar em outros sites
joao.neto 0 Denunciar post Postado Maio 8, 2010 Está ocorrendo algum erro de sintaxe no sql, ou seja, foi definido errado, acredito que antes do from tenha uma virgula ou algo que não deveria estar ali.... quando trabalho sql com variáveis eu costumo imprimir o sql na tela com um 'echo' pra ver certinho o que ele está executando..... se continuar o problema posta o sql aí..... Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Maio 8, 2010 fiz um teste aqui, quando eu deleto a variavel $msg erro desaparece Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Maio 8, 2010 código de envio da variavel $msg por email // CONECTA COM O SERVIDOR MYSQL mysql_connect($host,$usuario,$senha); // SELECIONA O BANCO mysql_select_db($banco); // RESGATA O VALOR DA GLOBAL INICIO $inicio = $_GET["inicio"]; // VERIFICA SE FOI ATRIBUIDO VALOR A VARIAVEL "INICIO" if($inicio == ""){ // ATRIBUI O VALOR 0 CASO NÃO EXISTA VALOR ATRIBUIDO $inicio = 0; }else{ // ATRIBUI O VALOR DA GLOBAL INICIO CASO JA EXISTA VALOR ATRIBUIDO $inicio = $_GET["inicio"]; } // ATRIBUI O RESULTADO DA SOMA ENTRE INICIO E QUANT $fim = $inicio + $quant; // EXECUTA A CONSULTA OU INFORMA UM ERRO CASO OCORRA $q = "SELECT {$campos} FROM `{$tabela}` WHERE `enviado` = 0 LIMIT {$inicio}, {$quant} "; $sql = mysql_query( $q )or die( mysql_error() ); // VERIFICA SE AINDA EXISTEM EMAILS A SEREM ENVIADOS if(mysql_num_rows($sql) == 0) { // INFORMO O TÉRMINO DO PROCESSO echo "<span class='texto_principal'>Fim do processo de envio!"; $consulta= "SELECT * FROM `{$tabela}` ORDER BY id asc "; $retorno = mysql_query($consulta,$conexao); while($campos = mysql_fetch_assoc($retorno)) { $id_ant = $campos['id']; $consulta2 = "UPDATE `{$tabela}` SET enviado ='0' WHERE id='$id_ant'"; mysql_select_db($base_dados, $conexao); $Result1 = mysql_query($consulta2, $conexao) or die(mysql_error()); print "".$campos['email']." realocado com sucesso "; print "<br>"; } print "</span>"; } else { $q = "SELECT {$campos} FROM `{$tabela}`"; $retorno = mysql_query($q,$conexao); while($campos = mysql_fetch_assoc($retorno)) { if($campos['bloqueado'] <> '1') { // CONTINUA EFETUANDO O ENVIO echo '<meta http-equiv="refresh" content="' . $seg . ',URL=?inicio='. $fim .'">'; } // CRIA O LAÇO REPETITIVO while($r = mysql_fetch_assoc($sql)){ // ADICIONAMOS OS PADRÕES DE DESTINATÁRIO $para = $r['email']; $id = $r['id']; $cabecalho = "MIME-Version: MSHTML 6.00.2900.3157\r\n"; $cabecalho = "Content-type: text/html; charset=iso-8859-1\r\n"; $cabecalho .= "Content-Type: text/html; charset=windows-1252\r\n"; $cabecalho .= "From:$remetente<$n>\r\n"; $cabecalho .= "Reply-to:<$n>\r\n"; // ENVIA O EMAIL PARA O DESTINATÁRIO if(mail($para, $assunto, $msg, $cabecalho)){ // INFORMA SE A MENSAGEM FOI ENVIADA echo "<span class='style1'>Mensagem enviada para: $para ($id)</span>"; // ALTERO O CODSTATUS PARA 1 @mysql_query("UPDATE newsletter SET enviado = '1' WHERE email = '$para'"); }else{ // INFORMO SE A MENSAGEM NÃO FOI ENVIADA echo "<span class='style1'>Mensagem não enviada para: $para ($id)</span>"; } } } } // LIBERA MEMORIA USADA NA CONSULTA mysql_free_result($sql); ?> <?php } ?> Compartilhar este post Link para o post Compartilhar em outros sites
joao.neto 0 Denunciar post Postado Maio 8, 2010 tava olhando melhor o codigo agora e vi que lhe passei errado lá acima......vi que tudo parte da $msg naquele seu primeiro erro, só que tá meio estranho pois você tá concatenando tudo que tem ali, junto com a query, my_ssql e tudo.... acho que você deveria realizar as consultas no banco de dados e obter o resultado antes de montar a sua $msg.... no caso do while de retorno do banco, não entendi muito bem como você queria concatenar os valores na mensagem, mas para dar um exemplo, você poderia tentar fazer algo parecido com esse exemplo: <? $id = $_SESSION["r_produto"]; $consulta = "SELECT * FROM produtos WHERE (id=$id)"; $retorno = mysql_query($consulta,$conexao); $msg = " <html> <table>"; while($campos = mysql_fetch_assoc($retorno)) { $valor_vista = $campos['valor']; $valor_vista_formatado = number_format($valor_vista, 2, ',', '.'); $valor_prazo = $campos['valor_prazo']; $valor_prazo_formatado = number_format($valor_prazo, 2, ',', '.'); $id = $campos['id'].' $msg = $msg."<tr> <td>$valor_vista</td> <td>$valor_vista_formatado</td> <td>$valor_prazo</td> <td>$valor_prazo_formatado</td> </tr>"; } $msg = $msg." </table> </html>"; ?> só uma coisa, não lembro como era no php, mas se não me engano para strings são usadas aspas duplas (") e não simples (')....e quando houver aspas duplas na string deveriam ser colocadas barras invertidas antes (\)....algo como <? $msg = "<table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"; ?> tenta colocar desta forma, acredito que irá resolver seu problema.... Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Maio 8, 2010 o que eu estou querendo fazer é isso entre aqui: http://www.ibrbirigui.com.br/shop/sis/newsletter/formail.php do jeito que está ai eu quero enviar através da variavel $msg <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="http://www.ibrbirigui.com.br/shop/sis/newsletter/imagens_news/news_topo.jpg" width="600" height="394" /></td> </tr> <tr> <td height="302" valign="top"> <table width="550" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" align="left" valign="middle"> <? $id = $_SESSION["r_produto"]; $consulta = "SELECT * FROM produtos WHERE (id=$id)"; $retorno = mysql_query($consulta,$conexao); $campos = mysql_fetch_assoc($retorno); ?> </td> </tr> <tr> <td width="160" align="left" valign="top"> <img src="http://www.ibrbirigui.com.br/shop/sis/imagens/produtos/<? print $campos['foto']; ?>" alt="<? print $campos['nome']; ?>" width="150" border="0" align="middle" /></td> <td width="390" align="left" valign="top"> <p> <a class="texto_menu_negrito2"><? print $campos['nome']; ?></a><br /> <a class="texto_bottom"> <strong>Código do Produto:</strong></a> <a class="texto_bottom"><? print $campos['cod_produto']; ?></a><br /> <br /> <a class="texto_menu_negrito2"><strong>Valor à vista R$</strong>'. <? $valor_vista = $campos['valor']; $valor_dec = number_format($valor_vista, 2, ',', '.'); print $valor_dec; ?> </a> </p> <div align="justify"> <a class="texto_bottom"><? print nl2br($campos['descricao']); ?></a></div></td> </tr> </table><br /><br /> <? $consulta= "SELECT * FROM produtos ORDER BY rand() LIMIT 6"; $retorno = mysql_query($consulta,$conexao); while($campos = mysql_fetch_assoc($retorno)) { $valor_vista = $campos['valor']; $valor_vista_formatado = number_format($valor_vista, 2, ',', '.'); $valor_prazo = $campos['valor_prazo']; $valor_prazo_formatado = number_format($valor_prazo, 2, ',', '.'); $id = $campos['id']; ?> <div style="float: left; "> <table width="200" border="0" cellpadding="1" cellspacing="1" > <tr> <td width="220" height="105" align="center"> <img src="http://www.ibrbirigui.com.br/shop/sis/imagens/produtos/<? print $campos['foto']; ?>" alt="<? print $campos['nome']; ?>" height="100" border="0" align="middle" /></td> </tr> <tr> <td width="220" height="60" align="center" valign="top"> <a class="link_menu2"><? print $campos['nome']; ?></a><br /> <a class="topo_menor">Por: <? print $valor_vista; ?></a><br /> <? $categoria = $campos["categoria"]; $consulta_cat = "SELECT * FROM categoria WHERE id = '$categoria'"; $retorno_cat = mysql_query($consulta_cat,$conexao); $campos_cat = mysql_fetch_assoc($retorno_cat); ?> <a class="texto_menu"><b>Veja mais <? print $campos_cat["nome"]; ?></b></a></td> </tr> <tr> <td height="39" align="center" valign="top"> </td> </tr> </table> </form> </div> <? } ?> </td> </tr> <tr> <td> <img src="http://www.ibrbirigui.com.br/shop/sis/newsletter/imagens_news/news_rodape.jpg" width="600" height="198" /></td> </tr> </table> <map name="Map" id="Map"> <area shape="rect" coords="4,4,96,98" href="http://www.ibrbirigui.com.br/shop/detalhes.php?id=<? print $campos['id']; ?>" /> </map> Compartilhar este post Link para o post Compartilhar em outros sites
joao.neto 0 Denunciar post Postado Maio 8, 2010 cara, esse código que você postou acima ficaria +ou- assim para colocar numa variável para poder enviar por e-mail <? $msg = " <table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td><img src=\"http://www.ibrbirigui.com.br/shop/sis/newsletter/imagens_news/news_topo.jpg\" width=\"600\" height=\"394\" /></td> </tr> <tr> <td height="302" valign=\"top\"> <table width=\"550\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td colspan=\"2\" align=\"left\" valign=\"middle\"> "; $id = $_SESSION["r_produto"]; $consulta = "SELECT * FROM produtos WHERE (id=$id)"; $retorno = mysql_query($consulta,$conexao); $campos = mysql_fetch_assoc($retorno); $msg = $msg." </td> </tr> <tr> <td width=\"160\" align=\"left\" valign=\"top\"> <img src=\"http://www.ibrbirigui.com.br/shop/sis/imagens/produtos/$campos['foto']\" alt=\"$campos['nome']\" width=\"150\" border=\"0\" align=\"middle\" /></td> <td width=\"390\" align=\"left\" valign=\"top\"> <p> ...."; $consulta= "SELECT * FROM produtos ORDER BY rand() LIMIT 6"; $retorno = mysql_query($consulta,$conexao); while($campos = mysql_fetch_assoc($retorno)) { $valor_vista = $campos['valor']; $valor_vista_formatado = number_format($valor_vista, 2, ',', '.'); $valor_prazo = $campos['valor_prazo']; $valor_prazo_formatado = number_format($valor_prazo, 2, ',', '.'); $id = $campos['id']; $msg = $msg . " <div style=\"float: left; \"> <table width=\"200\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\" > <tr> <td width=\"220\" height=\"105\" align=\"center\"> <img src=\"http://www.ibrbirigui.com.br/shop/sis/imagens/produtos/$campos['foto']\" alt=\"$campos['nome']\" height=\"100\" border=\"0\" align=\"middle\" /></td> ...."; } $msg = $msg . " </td> </tr> <tr> <td> <img src=\"http://www.ibrbirigui.com.br/shop/sis/newsletter/imagens_news/news_rodape.jpg\" width=\"600\" height=\"198\" /></td> </tr> </table> <map name=\"Map\" id=\"Map\"> <area shape=\"rect\" coords=\"4,4,96,98\" href=\"http://www.ibrbirigui.com.br/shop/detalhes.php?id=$campos['id']\" /> </map> "; ?> repare que antes das aspas duplas do código html eu coloquei uma barra invertida, para ele não interpretar como caractere especial do php, e eu retirei os 'print' que tinham dentro do código e só deixei as variáveis fiz boa parte do código pra você poder entender certinho....fazer tudo é sacanagem né... espero ter ajudado..... Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Maio 8, 2010 eu sei joao neto. nem quero q você faça tudo pra mim, eu só queria entender onde estava o erro.. vou quebrar a cuca aqui agora.. vlw.. obrigado fiz tudo e o erro persiste: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM newsletter WHERE enviado = 0 LIMIT 0,1' at line 1 $msg = " <table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td><img src=\"http://www.ibrbirigui.com.br/shop/sis/newsletter/imagens_news/news_topo.jpg\" width=\"600\" height=\"394\" /> </td> </tr> <tr> <td height=\"302\" valign=\"top\"> <table width=\"550\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td colspan=\"2\" align=\"left\" valign=\"middle\">"; $id = $_SESSION["r_produto"]; $consulta = "SELECT * FROM produtos WHERE (id=$id)"; $retorno = mysql_query($consulta,$conexao); $campos = mysql_fetch_assoc($retorno); $msg = $msg." </td> </tr> <tr> <td width=\"160\" align=\"left\" valign=\"top\"> <img src=\"http://www.ibrbirigui.com.br/shop/sis/imagens/produtos/".$campos['foto']."\" alt=\"".$campos['nome']."\" width=\"150\" border=\"0\" align=\"middle\" usemap=\"#Map3\" /></td> <td width=\"390\" align=\"left\" valign=\"top\"> <p> <a class=\"texto_menu_negrito2\">".$campos['nome']."</a><br /> <a class=\"texto_bottom\"> <strong>Código do Produto:</strong></a> <a class=\"texto_bottom\">".$campos['cod_produto']."</a><br /> <br /> <a class=\"texto_menu_negrito2\"><strong>Valor à vista R$</strong>"; $valor_vista = $campos['valor']; $valor_dec = number_format($valor_vista, 2, ',', '.'); print $valor_dec; $msg = $msg." </a> </p> <div align=\"justify\"> <a class=\"texto_bottom\">".nl2br($campos['descricao'])."</a></div></td> </tr> <tr> <td height=\"27\" colspan=\"2\" align=\"center\" valign=\"middle\"><hr /></td> </tr> </table> <br /><br />"; $consulta= "SELECT * FROM produtos ORDER BY rand() LIMIT 6"; $retorno = mysql_query($consulta,$conexao); while($campos = mysql_fetch_assoc($retorno)) { $valor_vista = $campos['valor']; $valor_vista_formatado = number_format($valor_vista, 2, ',', '.'); $valor_prazo = $campos['valor_prazo']; $valor_prazo_formatado = number_format($valor_prazo, 2, ',', '.'); $id = $campos['id']; $msg = $msg." <div style=\"float: left; \"> <table width=\"200\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\" > <tr> <td width=\"220\" height=\"105\" align=\"center\"> <img src=\"http://www.ibrbirigui.com.br/shop/sis/imagens/produtos/".$campos['foto']."\" alt=\"".$campos['nome']."\" height=\"100\" border=\"0\" align=\"middle\" usemap=\"#Map2\" /></td> </tr> <tr> <td width=\"220\" height=\"91\" align=\"center\" valign=\"top\"> <a class=\"link_menu2\">".$campos['nome']."</a><br /> <a class=\"topo_menor\">Por: $valor_vista;</a><br />"; $categoria = $campos["categoria"]; $consulta_cat = "SELECT * FROM categoria WHERE id = '$categoria'"; $retorno_cat = mysql_query($consulta_cat,$conexao); $campos_cat = mysql_fetch_assoc($retorno_cat); $msg = $msg." <a class=\"texto_menu\"><b>Veja mais ".$campos_cat['nome']."</b></a></td> </tr> <tr> <td height=\"70\" align=\"center\" valign=\"top\"> </td> </tr> </table> </form> </div>"; } $msg = $msg." </td> </tr> <tr> <td> <img src=\"http://www.ibrbirigui.com.br/shop/sis/newsletter/imagens_news/news_rodape.jpg\" width=\"600\" height=\"198\" /></td> </tr> </table> <map name=\"Map\" id=\"Map\"> <area shape=\"rect\" coords=\"4,4,96,98\" href=\"http://www.ibrbirigui.com.br/shop/detalhes.php?id=".$campos['id']."\" /> </map>"; O estranho é que quando eu elimino a variável $msg o erro não aparece mais fiz tudo e o erro persiste: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM newsletter WHERE enviado = 0 LIMIT 0,1' at line 1 O estranho é que quando eu elimino a variável $msg o erro não aparece mais Compartilhar este post Link para o post Compartilhar em outros sites
BTG 0 Denunciar post Postado Maio 8, 2010 Opa eu posso ter lido por cima o seu código, mas eu vi que você está executando operações dentro da string como colocar valores em variáveis talvez isso esteja ocasionando o erro. Já pensou nisso? Compartilhar este post Link para o post Compartilhar em outros sites