NinoSPFC 0 Denunciar post Postado Julho 6, 2008 Galera estou fazendo uma confirmação de pedidos, sendo que quando confirmados é enviado para o e-mail da pessoa a lista de pedidos realizados. Em uma pagina php normal o while funciona e exibe todas as linhas do bd. Mas quando eu utilizo ele na funcão mail ele só manda um registro. Estou usando o seguinte código, alguém sabe como corrigir isso? <? // enviar email confirmação $assunto = "Lista de Pedido"; $headers = "From: Jóias <pedidos@site.com>\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $email="anderson.poli@gmail.com"; while ($a = mysql_fetch_array($pedidos) ){ $item = $a["item"]; $recupera_dados_item = mysql_query( "SELECT * FROM produtos where id = '$item'" ) or die( mysql_error() ); //Exibe as linhas encontradas na consulta while ($row = mysql_fetch_array($recupera_dados_item)) { $nome_item= $row['nome']; $id_item = $row['id']; $codigo_item= $row['codigo']; $tipo_item = $row['tipo']; $acabamento_item= $row['acabamento']; $peso_item = $row['peso']; $tamanho_item= $row['tamanho']; $preco_item = $row['preco']; $categoria_item= $row['categoria']; $img_pequena_item = $row['img_pequena']; } $mensagem = "<table width='100%' border='0' cellpadding='5' cellspacing='1'> <tr align='center'> <td><strong>Data</strong></td> <td><strong>Imagem</strong></td> <td><strong>Nome</strong></td> <td><strong>Quantidade</strong></td> <tr><br></tr> </tr> <tr align='center' bgcolor='ffffff'> <td> ".$a["data"]." </td> <td> <img src='http://www.site.com/site/imagens/produtos/p/".$img_pequena_item."'> <br><br></td> <td>$nome_item </td> <td> ".$a["quantidade"]." </td> </tr>"; } $mensagem.="</table>"; mail($email, $assunto, $mensagem, $headers); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Hígor Fonseca 0 Denunciar post Postado Julho 6, 2008 Tenta assim: <? // enviar email confirmação $assunto = "Lista de Pedido"; $headers = "From: Jóias <pedidos@site.com>\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $email="anderson.poli@gmail.com"; while ($a = mysql_fetch_array($pedidos) ){ $item = $a["item"]; $recupera_dados_item = mysql_query( "SELECT * FROM produtos where id = '$item'" ) or die( mysql_error() ); //Exibe as linhas encontradas na consulta while ($row = mysql_fetch_array($recupera_dados_item)) { $nome_item= $row['nome']; $id_item = $row['id']; $codigo_item= $row['codigo']; $tipo_item = $row['tipo']; $acabamento_item= $row['acabamento']; $peso_item = $row['peso']; $tamanho_item= $row['tamanho']; $preco_item = $row['preco']; $categoria_item= $row['categoria']; $img_pequena_item = $row['img_pequena']; $mensagem = "<table width='100%' border='0' cellpadding='5' cellspacing='1'> <tr align='center'> <td><strong>Data</strong></td> <td><strong>Imagem</strong></td> <td><strong>Nome</strong></td> <td><strong>Quantidade</strong></td> <tr><br></tr> </tr> <tr align='center' bgcolor='ffffff'> <td> ".$a["data"]." </td> <td> <img src='http://www.site.com/site/imagens/produtos/p/".$img_pequena_item."'> <br><br></td> <td>$nome_item </td> <td> ".$a["quantidade"]." </td> </tr>"; $mensagem.="</table>"; mail($email, $assunto, $mensagem, $headers); }} ?> Coloca as duas chaves que fecham o while só depois do mail(...). ;) Compartilhar este post Link para o post Compartilhar em outros sites
NinoSPFC 0 Denunciar post Postado Julho 6, 2008 Valeu cara, mas não era este o problema.. O problema era o seguinte.. No começo do while eu falava que a variavel $mensagem = "<table width='100%' border='0' cellpadding='5' cellspacing='1'>" ETC.... E depois disso eu adicionava as linhas das tabelas com. mensagem.= <tr> <td> etc... O que acontece ele pegava direitinho, mas quando ele voltava para dar uma nova volta ele lia de novo o ; $mensagem = "<table width='100%' border='0' cellpadding='5' cellspacing='1'>" ETC.... Assim limpando o registro anterior rs.. Mas valeu cara brigadão!! Compartilhar este post Link para o post Compartilhar em outros sites