Ir para conteúdo

POWERED BY:

Arquivado

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

NinoSPFC

[Resolvido] Função mail com while

Recommended Posts

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

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

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

×

Informação importante

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