Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ajuda com função mail


Carlos Rocha

Pergunta

Ola pessoal, estou fazendo (pela primeira vez) um carrinho de compras em php mysql.

O código abaixo, exibe em tela os dados do pedido do cliente e os dados da conta bancária onde o cliente terá que fazer o depósito.

Esse estagio, é quando eu já verifiquei e estou enviando o email para o cliente informando sobre a compra que ele fez no momento m que elew preenche o formulario de compra pelo site.

Meu problema é que eui preciso transformar a exibição abaixo em uma variavel $texto para eu enviar por email pelo função mail mas não estou conseguindio. Dai preciso da ajuda de voces.

Grato a quem puder ajudar.

<?
if($acao=="responder"){
$Sql = mysql_query("select p.ID_PEDIDO, p.Envio, date_format(p.data, '%d/%m/%Y') AS data, pc.Nome as nome_cli, pc.Email as Email_Cli, pc.Endereco as Endereco_Cli, pc.Cidade as Cidade_Cli, pc.Estado as Estado_Cli, pc.CEP as CEP_Cli, pc.CPF as CPF_Cli from pedidos p inner join pedidos_cliente pc on pc.ID_PEDIDO_CLIENTE = p.ID_PEDIDO inner join produtos pr on p.ID_PRODUTO = pr.id where p.ID_PEDIDO = $pedido");
if (mysql_num_rows($Sql) == 0) {echo "<script>alert('Pedido Inexistente!');document.location='?acao=escolha'</script>";}
else {
list($ID_DO_PEDIDO, $ENVIO, $data, $nome_cli, $Email_Cli, $Endereco_Cli, $Cidade_Cli, $Estado_Cli, $CEP_Cli, $CPF_Cli) = mysql_fetch_row($Sql)
// criar varisavel texro com os dados que se seghuem
?>
<br><br>
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#00A955">
<tr>
<td colspan="5">
  <p align="center"><img src="../../img/topo.png" width="650"></p>
  <p>Ol&aacute;. Parab&eacute;ns!<br>
    Estamos enviando este e-mail pois voc&ecirc; fez uma compra em nosso site! <br>
    Segue abaixo os dados da compra j&aacute; adicionado o valor do frete e os dados para voc&ecirc; efetuar o dep&oacute;sito referente ao valor da compra.<br>
    Desde j&aacute;  agrade&ccedil;emos a prefer&ecirc;ncia.</p>
  <p>T&atilde;o logo efetue o dep&oacute;sito, por favor scaneie o recibo do dep&oacute;sito e envie por esse e-mail ou passe um FAX para (32) 3724 1202 com o seguinte t&iacute;tulo:: Dep&oacute;sito referente ao pedido n&ordm;: <?=$ID_DO_PEDIDO;?>.</p>
  <p>T&atilde;o logo confirme-mos o teu dep&oacute;sito, estaremos enviando os produtos que adquiriu.</p>
  <p>Novamente o noisso muito obrigado! </p>
  <p>&nbsp; </p></td>
</tr>
  <tr align="center">
    <td colspan="6" valign="middle">
     <table width="500" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>Pedido n&ordm;: <?=$ID_DO_PEDIDO;?></td>
    <td>DATA : <?=$data;?></td>
  </tr>
  <tr>
    <td>Cliente: <?=$nome_cli;?></td>
    <?
    $CPF_Cli = substr($CPF_Cli, 0, 3).".".substr($CPF_Cli, 3, 3).".".substr($CPF_Cli, 6, 3)."-".substr($CPF_Cli, 9, 2); 
    ?>
    <td>CPF: <?=$CPF_Cli;?></td>
  </tr>
  <tr>
    <td>Endere&ccedil;o: <?=$Endereco_Cli;?></td>
    <td>Cidade: <?=$Cidade_Cli;?>;</td>
  </tr>
  <tr>
    <td>Estado: <?=$Estado_Cli;?>;</td>
    <td>CEP: <?=$CEP_Cli;?></td>
  </tr>
  <tr>
    <td>Envio: <?=$ENVIO;?></td>
    <td><br><br></td>
  </tr>
</table>                                      
    </td>
  </tr>
  <tr align="center" valign="middle">
    <td>ITEM</td>
    <td>QTD.</td>
    <td>PRE&Ccedil;O UNIT&Aacute;RIO</td>
    <td>TOTAL</td>
    <td>&nbsp;</td>    
  </tr>
<?
$SqlProd = mysql_query("select p.ID_PEDIDO, p.QUANTIDADE, pr.nome as nome_produto, pr.preço as preco_unitario from pedidos p inner join pedidos_cliente pc on pc.ID_PEDIDO_CLIENTE = p.ID_PEDIDO inner join produtos pr on p.ID_PRODUTO = pr.id where p.ID_PEDIDO = $ID_DO_PEDIDO");
while(list($ID_PEDIDO, $QUANTIDADE, $nome_produto, $preco_unitario) = mysql_fetch_row($SqlProd)) { 
$preco_total = $preco_unitario * $QUANTIDADE;
$valor_total += $preco_total;
?>
  <tr>
    <td align="left"><?=$nome_produto;?></td>
    <td align="right"><?=$QUANTIDADE;?></td>
    <td align="right">R$ <?=number_format($preco_unitario, 2, '.', '');?></td>
    <td align="right">R$ <?=number_format($preco_total, 2, '.', '');?></td>    
    <td align="center" valign="middle">&nbsp;</td>
  </tr>
<? } ?>
  <tr>
    <td colspan="6" align="center" valign="middle"><p>&nbsp;</p>
    <?
    $valor_total_nota = $valor_total + $valor_do_frete;
    ?>
      <p>TOTAL DO PEDIDO: R$ 
        <?=number_format($valor_total, 2, '.', '');?> 
      <p>FRETE: R$ 
        <?=number_format($valor_do_frete, 2, '.', '');?> 
      <p>VALOR TOTAL PARA O DEP&Oacute;SITO: R$ 
        <?=number_format($valor_total_nota, 2, '.', '');?> 
  </tr>
  <tr>
<td colspan="5">
  <p>&nbsp;</p>
  <p>Segue abaixo os dados para o dep&oacute;sito:</p>
  <p>FORMA DE PAGAMENTO: DEP&Oacute;SITO BANC&Aacute;RIO ANTECIPADO<br>
    Bancos:<br>
    BANCO ITAU S/A<br>
    AG: 5255<br>
    CONTA POUPAN&Ccedil;A: 00457-3/500<br>
    <br>
    CAIXA ECON&Ocirc;MICA FEDERAL<br>
    AG: 0133<br>
    OPERA&Ccedil;&Atilde;O : 013<br>
    CONTA POUPAN&Ccedil;A : 00003221-8<br>
    <br>
    AP&Oacute;S EFETUAR O DEP&Oacute;SITO ENVIAR COMPROVANTE VIA FAX (32) 3724-1202 OU DIGITALIZAR E ENVIA PARA 0 E-MAIL PARA <?=$email_pedidos;?><br> 
    </p></td>
  </tr>
</table>

<?
}
                       }
?>

Link para o comentário
Compartilhar em outros sites

19 respostass a esta questão

Posts Recomendados

  • 0

Olá amigo...

Eu sou bem iniciante, bem mesmo, mais vou dar uma dica, bem de intrometido mesmo...

Desculpe se eu falar besteira tá ok?

Coloque todo o código html abaixo de

// criar varisavel texro com os dados que se seghuem
dentro de uma variável, por exemplo.

$email = “”;

Use aspas duplas pra processar as variáveis, e tire do código todos os esses <? E ?> para abrir e fechar php, abra php só no inicio e feche no final, deixe só as variáveis dentro do código html e também use o caractere de escape \ antes das aspas no código HTML.

Já tentou isso?

E se você precisar mostrar isso na tela, acho que um echo($email); resolve, não é? Eu acho, só acho, que ele vai mostrar o Html corretamente.

Acabei de ver uma coisa, tem um query de mysql no meio de tudo isso, acho que falei besteiro mesmo, será que usando várias variáveis diferentes e depois concatenando elas não da certo? Ou modificar o código, deixando no html só a parte que mostra pro usuário as informações e colocando o restante do código na parte de cima, o que acha?

Por exemplo, colocar essa parte lá em cima:

<?

$SqlProd = mysql_query("select p.ID_PEDIDO, p.QUANTIDADE, pr.nome as nome_produto, pr.preço as preco_unitario from pedidos p inner join pedidos_cliente pc on pc.ID_PEDIDO_CLIENTE = p.ID_PEDIDO inner join produtos pr on p.ID_PRODUTO = pr.id where p.ID_PEDIDO = $ID_DO_PEDIDO");

while(list($ID_PEDIDO, $QUANTIDADE, $nome_produto, $preco_unitario) = mysql_fetch_row($SqlProd)) {

$preco_total = $preco_unitario * $QUANTIDADE;

$valor_total += $preco_total;

?>

Fora do html...

Um grande abraço e boa sorte.

Editado por Leandro M. de Souza
Link para o comentário
Compartilhar em outros sites

  • 0

Encapsule o HTM que você quer enviar em uma função

<?php function email(){ ?>
<table><tr><td>content</td></tr></table>
<?php } 
$texto = email();
?>
Depois é só enviar seu email
mail("eu@eu.com","compras",$texto);

Link para o comentário
Compartilhar em outros sites

  • 0

O seu while não precisa ficar dentro da função você pode apenas passar uma array para a função com o resultado retornado do banco.

<? function email($arr){ ?>
produto: <?= $arr['ID_PEDIDO'] ?>
<? } ?>

Ou salvar no bd ou em arquivo o pedido do cliente e construir a string para passar para função mail, aliás é assim que eu faço. Dessa forma tenho um log.

Link para o comentário
Compartilhar em outros sites

  • 0

Mas hein Norivan.

beleza?

Talves voce não esteje acompanhando o tópico desde o começo.

Meu problema é o seguinte;

Eu preciso jogar dentro de uma variavel que dei o nome de texto, todo o conteudo de uma consulta ao bnanco de dados onde seus resultados foram mostrados por uma mysql_fetich_array com o List e um campo desses retornados eu joguei em um laço wile para oter ouitros resultados.; Então, dentro dessa variavbel texto, terá list e a partir de um campo desse list farei um wile e ai não esta dando certo.

isso para mandar um email com, o resultado da variavel texto.;

O código completp esta no inicio deste post.

Se puder ajudar:

Link para o comentário
Compartilhar em outros sites

  • 0

De repente se coinseguir colocar um while dentro da variael de certo mas não estou conseguindo.

Veja:

Observe que no código abaixo, a variavel condicionmal na sql '$ID_PEDIDO' ' se encontra dentro de um list anterior

$texto3 = "
$SqlProd = mysql_query('select p.ID_PEDIDO, p.QUANTIDADE, pr.nome as nome_produto, pr.preço as preco_unitario from pedidos p inner join pedidos_cliente pc on pc.ID_PEDIDO_CLIENTE = p.ID_PEDIDO inner join produtos pr on p.ID_PRODUTO = pr.id where p.ID_PEDIDO = '$ID_PEDIDO' ');
while(list($ID_PEDIDO, $QUANTIDADE, $nome_produto, $preco_unitario) = mysql_fetch_row($SqlProd)) { 
$preco_total = $preco_unitario * $QUANTIDADE;
$valor_total += $preco_total;

  <tr>
    <td align='left'>$nome_produto</td>
    <td align='right'>$QUANTIDADE</td>
    <td align='right'>R$ ".number_format($preco_unitario, 2, '.', '')."</td>
    <td align='right'>R$ ".number_format($preco_total, 2, '.', '')."</td>    
    <td align='center' valign='middle'>&nbsp;</td>
  </tr>
  
  <tr>
    <td colspan='6' align='center' valign='middle'><p>&nbsp;</p>
    
    $valor_total_nota = $valor_total + $valor_do_frete;
    ?>
      <p>TOTAL DO PEDIDO: R$ ".number_format($valor_total, 2, '.', '')." 
      <p>FRETE: R$ ".number_format($valor_do_frete, 2, '.', '') ."
      <p>VALOR TOTAL PARA O DEP&Oacute;SITO: R$ ".number_format($valor_total_nota, 2, '.', '') ."
  </tr>
  
                                                                                               }
";

Link para o comentário
Compartilhar em outros sites

  • 0

Olá amigo...

Bem, nesse while você faz com que o script mostre todos os resultados, ou seja, todos os dados referentes a todos os produtos e seus respectivos detalhes. No caso ele vai se repetir até mostrar todos os produtos.

Essa parte das condições que você deu pro while funcionar eu ainda não consigo entender.

while(list($ID_PEDIDO, $QUANTIDADE, $nome_produto, $preco_unitario) = mysql_fetch_row($SqlProd))

Sou bem iniciante ainda...

De qualquer forma, você quer colocar tudo isso dentro de uma variável só, pra depois mostrar dentro da variável que contem o código HTML pra depois enviar pra um e-mail. E se você fizesse uma “gambiarra” do tipo colocar tudo dentro de uma variável, ou seja, todo o resultado desta forma, cada vez que o while executa um loop ele coloca todo o código HTML dentro de uma única variável simples com algo assim:

$suavariavel .= “Todo o resultado aqui”;

Neste caso ele vai somando conteúdo a uma única variável, devido ao operador ponto, para ele adicionar o conteúdo.

O complicado que ele vai juntar tudo isso sem quebra de linha nem nada, daí você teria que colocar alguns \n pra organizar o código, será que assim não funciona?

Depois você poderia colocar a variável dentro da outra, que contém o código HTML.

Desculpe-me se eu falei uma tremenda besteira... :D

Olha a tremenda "gambiarra" que eu fiz aqui pra testar...

<?php

$teste1 = array(); /* Cria uma array chamada $teste1 */

$teste1[0] = 'teste1';
$teste1[1] = 'teste2';
$teste1[2] = 'teste3';
$teste1[3] = 'teste4';
$teste1[4] = 'teste5';
$teste1[5] = 'teste6';
$testevar = '';

/* Fiz uma while besta aqui pra retornar todos os valores do array e somar na variável $testevar */

reset ($teste1);
    while (list(, $erros) = each ($teste1)) {
    $testevar .= $erros.'</br>';
}

echo($testevar);
?>

:) Acho que assim vai ficar muito mal feito né?

Ele vai somar todo o código, vai virar uma bagunça... :P

Aqui pra mim ele retonar uma lista assim, no navegador, porque eu usei só </br> pra quebrar a linha, mais e o \n, quebra a linha no código né?

teste1

teste2

teste3

teste4

teste5

teste6

no código fica assim:

teste1</br>teste2</br>teste3</br>teste4</br>teste5</br>teste6</br>

Ele junta tudo, imagina no seu código que bagunça vai virar... :D

Editado por Leandro M. de Souza
Link para o comentário
Compartilhar em outros sites

  • 0

E por que não funciona?

Acho que me expressei mal, eu tentei dizer para você colocar apenas o resultado desse while dentro de uma variável, algo assim:

$suavariavel = '';

$SqlProd = mysql_query('select p.ID_PEDIDO, p.QUANTIDADE, pr.nome as nome_produto, pr.preço as preco_unitario from pedidos p inner join pedidos_cliente pc on pc.ID_PEDIDO_CLIENTE = p.ID_PEDIDO inner join produtos pr on p.ID_PRODUTO = pr.id where p.ID_PEDIDO = '$ID_PEDIDO' ');
while(list($ID_PEDIDO, $QUANTIDADE, $nome_produto, $preco_unitario) = mysql_fetch_row($SqlProd)) {

$preco_total = $preco_unitario * $QUANTIDADE;
$valor_total += $preco_total;

$suavariavel .= "

    <tr>
    <td align='left'>$nome_produto</td>
    <td align='right'>$QUANTIDADE</td>
    <td align='right'>R$ ".number_format($preco_unitario, 2, '.', '')."</td>
    <td align='right'>R$ ".number_format($preco_total, 2, '.', '')."</td>    
    <td align='center' valign='middle'>&nbsp;</td>
  </tr>
    
    <tr>
    <td colspan='6' align='center' valign='middle'><p>&nbsp;</p>
             $valor_total_nota = $valor_total + $valor_do_frete;
      <p>TOTAL DO PEDIDO: R$ ".number_format($valor_total, 2, '.', '')." 
      <p>FRETE: R$ ".number_format($valor_do_frete, 2, '.', '') ."
      <p>VALOR TOTAL PARA O DEP&Oacute;SITO: R$ ".number_format($valor_total_nota, 2, '.', '') ."
  </tr>
    
    ";

}
A cada loop do while ele vai adicionando o conteúdo do resultado dentro da variável, junto com o código html, ele vai adicionando código... Depois se você usar echo($suavariavel);, ele vai imprimir todo o resultado na tela, assim você pode coloar a variável $suavariavel, dentro de outra, digamos $email, pois desta forma você estará retirando o while, que acho que é o que está dando erro. Tentou algo assim? Eu fiz um teste besta aqui: Não repare a bagunça no código, eu fiz rapidinho. :) Deixei o meu while aqui pra simular o seu, pois não encontrei outra forma, pra ele repetir o código. O resultado lá no final...
<?php

$teste1 = array(); /* Cria uma array chamada $teste1 */

$teste1[0] = 'teste1';
$teste1[1] = 'teste2';
$teste1[2] = 'teste3';
$teste1[3] = 'teste4';
$teste1[4] = 'teste5';
$teste1[5] = 'teste6';
$testevar = '';
$suavariavel = '';

$nome_produto = '';
$QUANTIDADE = '';
$preco_unitario = '1';
$preco_total = '1';
$valor_total_nota = 1;
$valor_total = 1;  
$valor_do_frete = 1;

/* Fiz uma while besta aqui pra retornar todos os valores do array e somar na variável $testevar */

reset ($teste1);
    while (list(, $erros) = each ($teste1)) {
    
    $suavariavel .= " /* Repare que a variável começa aqui e não no inicio do while... */

    <tr>
    <td align='left'>$nome_produto</td>
    <td align='right'>$QUANTIDADE</td>
    <td align='right'>R$ ".number_format($preco_unitario, 2, '.', '')."</td>
    <td align='right'>R$ ".number_format($preco_total, 2, '.', '')."</td>    
    <td align='center' valign='middle'>&nbsp;</td>
  </tr>
    
    <tr>
    <td colspan='6' align='center' valign='middle'><p>&nbsp;</p>
             $valor_total_nota = $valor_total + $valor_do_frete;
      <p>TOTAL DO PEDIDO: R$ ".number_format($valor_total, 2, '.', '')." 
      <p>FRETE: R$ ".number_format($valor_do_frete, 2, '.', '') ."
      <p>VALOR TOTAL PARA O DEP&Oacute;SITO: R$ ".number_format($valor_total_nota, 2, '.', '') ."
  </tr>
    
    ";
}

echo($suavariavel); /* Ele só é impressa uma única vez e não em cada loop do while... */
?>
Ele imprime isto na tela...
R$ 1.00 R$ 1.00   


1 = 1 + 1; 

TOTAL DO PEDIDO: R$ 1.00 

FRETE: R$ 1.00 

VALOR TOTAL PARA O DEPÓSITO: R$ 1.00 R$ 1.00 R$ 1.00   


1 = 1 + 1; 

TOTAL DO PEDIDO: R$ 1.00 

FRETE: R$ 1.00 

VALOR TOTAL PARA O DEPÓSITO: R$ 1.00 R$ 1.00 R$ 1.00   


1 = 1 + 1; 

TOTAL DO PEDIDO: R$ 1.00 

FRETE: R$ 1.00 

VALOR TOTAL PARA O DEPÓSITO: R$ 1.00 R$ 1.00 R$ 1.00   


1 = 1 + 1; 

TOTAL DO PEDIDO: R$ 1.00 

FRETE: R$ 1.00 

VALOR TOTAL PARA O DEPÓSITO: R$ 1.00 R$ 1.00 R$ 1.00   


1 = 1 + 1; 

TOTAL DO PEDIDO: R$ 1.00 

FRETE: R$ 1.00 

VALOR TOTAL PARA O DEPÓSITO: R$ 1.00 R$ 1.00 R$ 1.00   


1 = 1 + 1; 

TOTAL DO PEDIDO: R$ 1.00 

FRETE: R$ 1.00 

VALOR TOTAL PARA O DEPÓSITO: R$ 1.00
Ou seja, todo o resultado do while, assim basta você colocar dentro do restante do código, porém observe uma coisa, você tem que isolar as partes que contém calculos, porque se simplesmente abrir aspas no começo e fechar no final, ele não faz nem um calculo. :) Repare que o echo($suavariavel); está fora do while. Depois você pega todo o restante do código, abaixo do while, e coloca em outra varíavel, vamos supor $email, e simplesmente junta as duas e manda por e-mail, será que funciona? Ou seja daqui para baixo na variável $email
<tr>
    <td colspan="6" align="center" valign="middle"><p>&nbsp;</p>
    <?
    $valor_total_nota = $valor_total + $valor_do_frete;
    ?>
      <p>TOTAL DO PEDIDO: R$ 
        <?=number_format($valor_total, 2, '.', '');?> 
      <p>FRETE: R$ 
        <?=number_format($valor_do_frete, 2, '.', '');?> 
      <p>VALOR TOTAL PARA O DEP&Oacute;SITO: R$ 
        <?=number_format($valor_total_nota, 2, '.', '');?> 
  </tr>
  <tr>
<td colspan="5">
  <p>&nbsp;</p>
  <p>Segue abaixo os dados para o dep&oacute;sito:</p>
  <p>FORMA DE PAGAMENTO: DEP&Oacute;SITO BANC&Aacute;RIO ANTECIPADO<br>
    Bancos:<br>
    BANCO ITAU S/A<br>
    AG: 5255<br>
    CONTA POUPAN&Ccedil;A: 00457-3/500<br>
    <br>
    CAIXA ECON&Ocirc;MICA FEDERAL<br>
    AG: 0133<br>
    OPERA&Ccedil;&Atilde;O : 013<br>
    CONTA POUPAN&Ccedil;A : 00003221-8<br>
    <br>
    AP&Oacute;S EFETUAR O DEP&Oacute;SITO ENVIAR COMPROVANTE VIA FAX (32) 3724-1202 OU DIGITALIZAR E ENVIA PARA 0 E-MAIL PARA <?=$email_pedidos;?><br> 
    </p></td>
  </tr>
</table>

Ou seja, a variável $suavariavel conterá todo o resultado do while e a variável $email o restante do código html, basta juntá-las em outra variável, vamos supor $enviaremail e enviar por e-mail.

Um grande abraço.

:)

Editado por Leandro M. de Souza
Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade, comecei fazendo assim:

peguei a primeira parte do código e só atribui a variavel depois que passei pela query

<?
if($acao=="responder"){
$Sql = mysql_query("select p.ID_PEDIDO, p.Envio, date_format(p.data, '%d/%m/%Y') AS data, pc.Nome as nome_cli, pc.Email as Email_Cli, pc.Endereco as Endereco_Cli, pc.Cidade as Cidade_Cli, pc.Estado as Estado_Cli, pc.CEP as CEP_Cli, pc.CPF as CPF_Cli from pedidos p inner join pedidos_cliente pc on pc.ID_PEDIDO_CLIENTE = p.ID_PEDIDO inner join produtos pr on p.ID_PRODUTO = pr.id where p.ID_PEDIDO = $pedido");
if (mysql_num_rows($Sql) == 0) {echo "<script>alert('Pedido Inexistente!');document.location='?acao=escolha'</script>";}
else {
list($ID_DO_PEDIDO, $ENVIO, $data, $nome_cli, $Email_Cli, $Endereco_Cli, $Cidade_Cli, $Estado_Cli, $CEP_Cli, $CPF_Cli) = mysql_fetch_row($Sql)
// criar varisavel texro com os dados que se seghuem
$texto = "
?>
<br><br>
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#00A955">
<tr>
...
Até ai vai bem, ms, quando chega mais embaixo no código, tenho que colocar dentro da variavel o while e ai na hora de exibnir ele esta exibindo o texto do while e não o resultadso que vem, do banco. cxomo que se o while fosse o conteudo de uma variavel.
...
<tr align="center" valign="middle">
    <td>ITEM</td>
    <td>QTD.</td>
    <td>PRE&Ccedil;O UNIT&Aacute;RIO</td>
    <td>TOTAL</td>
    <td>&nbsp;</td>    
  </tr>
<?
$SqlProd = mysql_query("select p.ID_PEDIDO, p.QUANTIDADE, pr.nome as nome_produto, pr.preço as preco_unitario from pedidos p inner join pedidos_cliente pc on pc.ID_PEDIDO_CLIENTE = p.ID_PEDIDO inner join produtos pr on p.ID_PRODUTO = pr.id where p.ID_PEDIDO = $ID_DO_PEDIDO");
while(list($ID_PEDIDO, $QUANTIDADE, $nome_produto, $preco_unitario) = mysql_fetch_row($SqlProd)) { 
$preco_total = $preco_unitario * $QUANTIDADE;
$valor_total += $preco_total;
?>
  <tr>
    <td align="left"><?=$nome_produto;?></td>
    <td align="right"><?=$QUANTIDADE;?></td>
    <td align="right">R$ <?=number_format($preco_unitario, 2, '.', '');?></td>
    <td align="right">R$ <?=number_format($preco_total, 2, '.', '');?></td>    
    <td align="center" valign="middle">&nbsp;</td>
  </tr>
<? } ?>
  <tr>
    <td colspan...

Link para o comentário
Compartilhar em outros sites

  • 0

Então, leia novamente meu post acima, eu expliquei como colocar todo o conteúdo do resultado while dentro de uma variável, pra depois você juntar com o restante do código entre outra variável que será enviada por e-mail. Eu editei o post e expliquei melhor.

Um grande abraço. :)

Link para o comentário
Compartilhar em outros sites

  • 0

oK.

Fiz do jeito abaixo mas não estou conseguindo efetuar o while pois a variavel vai pegar apenas uma volta do while e se eu colocar a variavel pegando o texto while... ai da erro de colocação do while dentro da variavewl.

veja:

<?
if($acao=="responder"){
$Sql = mysql_query("select p.ID_PEDIDO, p.Envio, date_format(p.data, '%d/%m/%Y') AS data, pc.Nome as nome_cli, pc.Email as Email_Cli, pc.Endereco as Endereco_Cli, pc.Cidade as Cidade_Cli, pc.Estado as Estado_Cli, pc.CEP as CEP_Cli, pc.CPF as CPF_Cli from pedidos p inner join pedidos_cliente pc on pc.ID_PEDIDO_CLIENTE = p.ID_PEDIDO inner join produtos pr on p.ID_PRODUTO = pr.id where p.ID_PEDIDO = $pedido");
if (mysql_num_rows($Sql) == 0) {echo "<script>alert('Pedido Inexistente!');document.location='?acao=escolha'</script>";}
else {
list($ID_DO_PEDIDO, $ENVIO, $data, $nome_cli, $Email_Cli, $Endereco_Cli, $Cidade_Cli, $Estado_Cli, $CEP_Cli, $CPF_Cli) = mysql_fetch_row($Sql);
// criar varisavel texro com os dados que se seghuem
$texto1 = "
<br><br>
<table width='700' border='0' align='center' cellpadding='0' cellspacing='0' bgcolor='#00A955'>
<tr>
<td colspan='5'>
  <p align='center'><img src='../../img/topo.png' width='650'></p>
  <p>Ol&aacute;. Parab&eacute;ns!<br>
    Estamos enviando este e-mail pois voc&ecirc; fez uma compra em nosso site! <br>
    Segue abaixo os dados da compra j&aacute; adicionado o valor do frete e os dados para voc&ecirc; efetuar o dep&oacute;sito referente ao valor da compra.<br>
    Desde j&aacute;  agrade&ccedil;emos a prefer&ecirc;ncia.</p>
  <p>T&atilde;o logo efetue o dep&oacute;sito, por favor scaneie o recibo do dep&oacute;sito e envie por esse e-mail ou passe um FAX para (32) 3724 1202 com o seguinte t&iacute;tulo:: Dep&oacute;sito referente ao pedido n&ordm;: $ID_DO_PEDIDO.</p>
  <p>T&atilde;o logo confirme-mos o teu dep&oacute;sito, estaremos enviando os produtos que adquiriu.</p>
  <p>Novamente o noisso muito obrigado! </p>
  <p>&nbsp; </p></td>
</tr>
  <tr align='center'>
    <td colspan='6' valign='middle'>
     <table width='500' border='0' cellspacing='0' cellpadding='0'>
  <tr>
    <td>Pedido n&ordm;: $ID_DO_PEDIDO</td>
    <td>DATA : $data </td>
  </tr>
  <tr>
    <td>Cliente: $nome_cli</td>
    ";
    $CPF_Cli = substr($CPF_Cli, 0, 3).'.'.substr($CPF_Cli, 3, 3).'.'.substr($CPF_Cli, 6, 3).'-'.substr($CPF_Cli, 9, 2);    
    $texto2 = "
    <td>CPF: $CPF_Cli</td>
  </tr>
  <tr>
    <td>Endere&ccedil;o: $Endereco_Cli</td>
    <td>Cidade: $Cidade_Cli;</td>
  </tr>
  <tr>
    <td>Estado: $Estado_Cli;</td>
    <td>CEP: $CEP_Cli</td>
  </tr>
  <tr>
    <td>Envio: $ENVIO</td>
    <td><br><br></td>
  </tr>
</table>                                      
    </td>
  </tr>
  <tr align='center' valign='middle'>
    <td>ITEM</td>
    <td>QTD.</td>
    <td>PRE&Ccedil;O UNIT&Aacute;RIO</td>
    <td>TOTAL</td>
    <td>&nbsp;</td>    
  </tr>
  ";
$SqlProd = mysql_query("select p.ID_PEDIDO, p.QUANTIDADE, pr.nome as nome_produto, pr.preço as preco_unitario from pedidos p inner join pedidos_cliente pc on pc.ID_PEDIDO_CLIENTE = p.ID_PEDIDO inner join produtos pr on p.ID_PRODUTO = pr.id where p.ID_PEDIDO = $ID_DO_PEDIDO");
while(list($ID_PEDIDO, $QUANTIDADE, $nome_produto, $preco_unitario) = mysql_fetch_row($SqlProd)) { 
$preco_total = $preco_unitario * $QUANTIDADE;
$valor_total += $preco_total;
$texto3 = "
  <tr>
    <td align='left'>$nome_produto</td>
    <td align='right'>$QUANTIDADE</td>
    <td align='right'>R$ ".number_format($preco_unitario, 2, '.', '')."</td>
    <td align='right'>R$ ".number_format($preco_total, 2, '.', '')."</td>    
    <td align='center' valign='middle'>&nbsp;</td>
  </tr>
  
  <tr>
    <td colspan='6' align='center' valign='middle'><p>&nbsp;</p>
";
    $valor_total_nota = $valor_total + $valor_do_frete;
$texto4    = "    
      <p>TOTAL DO PEDIDO: R$ ".number_format($valor_total, 2, '.', '')." 
      <p>FRETE: R$ ".number_format($valor_do_frete, 2, '.', '') ."
      <p>VALOR TOTAL PARA O DEP&Oacute;SITO: R$ ".number_format($valor_total_nota, 2, '.', '') ."
  </tr>
   ";
                                                                                                   }
   
                                                                                              
  $texto5 = "
  <tr>
<td colspan='5'>
  <p>&nbsp;</p>
  <p>Segue abaixo os dados para o dep&oacute;sito:</p>
  <p>FORMA DE PAGAMENTO: DEP&Oacute;SITO BANC&Aacute;RIO ANTECIPADO<br>
    Bancos:<br>
    BANCO ITAU S/A<br>
    AG: 5255<br>
    CONTA POUPAN&Ccedil;A: 00457-3/500<br>
    <br>
    CAIXA ECON&Ocirc;MICA FEDERAL<br>
    AG: 0133<br>
    OPERA&Ccedil;&Atilde;O : 013<br>
    CONTA POUPAN&Ccedil;A : 00003221-8<br>
    <br>
    AP&Oacute;S EFETUAR O DEP&Oacute;SITO ENVIAR COMPROVANTE VIA FAX (32) 3724-1202 OU DIGITALIZAR E ENVIA PARA 0 E-MAIL PARA $email_pedidos<br> 
    </p></td>
  </tr>
</table>";
$texto = $texto1 . $texto2 . $texto3 . $texto4. $texto5;
echo $texto;
}
                       }
?>

Link para o comentário
Compartilhar em outros sites

  • 0
amigo, faltou o . ponto, antes do igual... assim você estará somando conteúdo a variável... $texto3 .= "...

OBS: Declare a variável em branco antes $texto3 = '';

Um grande abraço.

"Não entendi o faltou o ponto"

Como ficaria então?

Eu coloquei assim:

$texto = $texto1 . $texto2 . $texto3 . $texto4. $texto5;

echo $texto;

Link para o comentário
Compartilhar em outros sites

  • 0

Ok

agora funcionou.

Mas, apenas uma perguntiha basica e boba:

quando ele faz o .= na $texto3, ele esta gerando uma linha em branco entre ada registro (produto). Tem como excluir essa linha em branco? Como?

veja:

Olá. Parabéns!
Estamos enviando este e-mail pois você fez uma compra em nosso site! 
Segue abaixo os dados da compra já adicionado o valor do frete e os dados para você efetuar o depósito referente ao valor da compra.
Desde já agradeçemos a preferência.

Tão logo efetue o depósito, por favor scaneie o recibo do depósito e envie por esse e-mail ou passe um FAX para (32) 3724 1202 com o seguinte título:: Depósito referente ao pedido nº: 14.

Tão logo confirme-mos o teu depósito, estaremos enviando os produtos que adquiriu.

Novamente o nosso muito obrigado! 

  

Pedido nº: 14 DATA : 09/05/2009  
Cliente: oo CPF: 555.555.555-55 
Endereço: ll Cidade: ll; 
Estado: ll; CEP: ll 
Envio: CORREIOS_PAC 



ITEM QTD. PREÇO UNITÁRIO TOTAL   
ff 1 R$ 0.55 R$ 0.55   


ss 1 R$ 4.44 R$ 4.44   


TOTAL DO PEDIDO: R$ 4.99 

FRETE: R$ 1.50 

VALOR TOTAL PARA O DEPÓSITO: R$ 6.49 



Segue abaixo os dados para o depósito:

FORMA DE PAGAMENTO: DEPÓSITO BANCÁRIO ANTECIPADO
Bancos:
BANCO ITAU S/A
AG: 5255
CONTA POUPANÇA: 00457-3/500

CAIXA ECONÔMICA FEDERAL
AG: 0133
OPERAÇÃO : 013
CONTA POUPANÇA : 00003221-8

APÓS EFETUAR O DEPÓSITO ENVIAR COMPROVANTE VIA FAX (32) 3724-1202 OU DIGITALIZAR E ENVIA PARA 0 E-MAIL PARA pedidos@naturelavie.com.br

Link para o comentário
Compartilhar em outros sites

  • 0

É, essa parte entraria em outra variavbel talvez a $texto4.

Mas agora deu certo.

Turma, obrigado a quem deu a sua contribuição. Em especial ao nosso colega Leandro M. de Souza.

Que Deus de uma ótima semana a todos.

Ficou assim:

<?
if($acao=="responder"){
$Sql = mysql_query("select p.ID_PEDIDO, p.Envio, date_format(p.data, '%d/%m/%Y') AS data, pc.Nome as nome_cli, pc.Email as Email_Cli, pc.Endereco as Endereco_Cli, pc.Cidade as Cidade_Cli, pc.Estado as Estado_Cli, pc.CEP as CEP_Cli, pc.CPF as CPF_Cli from pedidos p inner join pedidos_cliente pc on pc.ID_PEDIDO_CLIENTE = p.ID_PEDIDO inner join produtos pr on p.ID_PRODUTO = pr.id where p.ID_PEDIDO = $pedido");
if (mysql_num_rows($Sql) == 0) {echo "<script>alert('Pedido Inexistente!');document.location='?acao=escolha'</script>";}
else {
list($ID_DO_PEDIDO, $ENVIO, $data, $nome_cli, $Email_Cli, $Endereco_Cli, $Cidade_Cli, $Estado_Cli, $CEP_Cli, $CPF_Cli) = mysql_fetch_row($Sql);
// criar varisavel texro com os dados que se seghuem
$texto1 = "
<br><br>
<table width='700' border='0' align='center' cellpadding='0' cellspacing='0' bgcolor='#00A955'>
<tr>
<td colspan='5'>
  <p align='center'><img src='http://www.naturelavie.com.br/img/topo.png' width='650'></p>
  <p>Ol&aacute;. Parab&eacute;ns!<br>
    Estamos enviando este e-mail pois voc&ecirc; fez uma compra em nosso site! <br>
    Segue abaixo os dados da compra j&aacute; adicionado o valor do frete e os dados para voc&ecirc; efetuar o dep&oacute;sito referente ao valor da compra.<br>
    Desde j&aacute;  agrade&ccedil;emos a prefer&ecirc;ncia.</p>
  <p>T&atilde;o logo efetue o dep&oacute;sito, por favor scaneie o recibo do dep&oacute;sito e envie por esse e-mail ou passe um FAX para (32) 3724 1202 com o seguinte t&iacute;tulo:: Dep&oacute;sito referente ao pedido n&ordm;: $ID_DO_PEDIDO.</p>
  <p>T&atilde;o logo confirme-mos o teu dep&oacute;sito, estaremos enviando os produtos que adquiriu.</p>
  <p>Novamente o nosso muito obrigado! </p>
  <p>&nbsp; </p></td>
</tr>
  <tr align='center'>
    <td colspan='6' valign='middle'>
     <table width='500' border='0' cellspacing='0' cellpadding='0'>
  <tr>
    <td>Pedido n&ordm;: $ID_DO_PEDIDO</td>
    <td>DATA : $data </td>
  </tr>
  <tr>
    <td>Cliente: $nome_cli</td>
    ";
    $CPF_Cli = substr($CPF_Cli, 0, 3).'.'.substr($CPF_Cli, 3, 3).'.'.substr($CPF_Cli, 6, 3).'-'.substr($CPF_Cli, 9, 2);    
    $texto2 = "
    <td>CPF: $CPF_Cli</td>
  </tr>
  <tr>
    <td>Endere&ccedil;o: $Endereco_Cli</td>
    <td>Cidade: $Cidade_Cli;</td>
  </tr>
  <tr>
    <td>Estado: $Estado_Cli;</td>
    <td>CEP: $CEP_Cli</td>
  </tr>
  <tr>
    <td>Envio: $ENVIO</td>
    <td><br><br></td>
  </tr>
</table>                                      
    </td>
  </tr>
  <tr align='center' valign='middle'>
    <td>ITEM</td>
    <td>QTD.</td>
    <td>PRE&Ccedil;O UNIT&Aacute;RIO</td>
    <td>TOTAL</td>
    <td>&nbsp;</td>    
  </tr>
  ";
$SqlProd = mysql_query("select p.ID_PEDIDO, p.QUANTIDADE, pr.nome as nome_produto, pr.preço as preco_unitario from pedidos p inner join pedidos_cliente pc on pc.ID_PEDIDO_CLIENTE = p.ID_PEDIDO inner join produtos pr on p.ID_PRODUTO = pr.id where p.ID_PEDIDO = $ID_DO_PEDIDO");
while(list($ID_PEDIDO, $QUANTIDADE, $nome_produto, $preco_unitario) = mysql_fetch_row($SqlProd)) { 
$preco_total = $preco_unitario * $QUANTIDADE;
$valor_total += $preco_total;
$texto3 .= "
  <tr>
    <td align='left'>$nome_produto</td>
    <td align='right'>$QUANTIDADE</td>
    <td align='right'>R$ ".number_format($preco_unitario, 2, '.', '')."</td>
    <td align='right'>R$ ".number_format($preco_total, 2, '.', '')."</td>    
    <td align='center' valign='middle'>&nbsp;</td>
  </tr>
";  
$texto4 = " 
  <tr>
    <td colspan='6' align='center' valign='middle'><p>&nbsp;</p>
";
    $valor_total_nota = $valor_total + $valor_do_frete;
$texto5    = "    
      <p>TOTAL DO PEDIDO: R$ ".number_format($valor_total, 2, '.', '')." 
      <p>FRETE: R$ ".number_format($valor_do_frete, 2, '.', '') ."
      <p>VALOR TOTAL PARA O DEP&Oacute;SITO: R$ ".number_format($valor_total_nota, 2, '.', '') ."
  </tr>
   ";
                                                                                                   }
$texto6 = "
  <tr>
<td colspan='5'>
  <p>&nbsp;</p>
  <p>Segue abaixo os dados para o dep&oacute;sito:</p>
  <p>FORMA DE PAGAMENTO: DEP&Oacute;SITO BANC&Aacute;RIO ANTECIPADO<br>
    Bancos:<br>
    BANCO ITAU S/A<br>
    AG: 5255<br>
    CONTA POUPAN&Ccedil;A: 00457-3/500<br>
    <br>
    CAIXA ECON&Ocirc;MICA FEDERAL<br>
    AG: 0133<br>
    OPERA&Ccedil;&Atilde;O : 013<br>
    CONTA POUPAN&Ccedil;A : 00003221-8<br>
    <br>
    AP&Oacute;S EFETUAR O DEP&Oacute;SITO ENVIAR COMPROVANTE VIA FAX (32) 3724-1202 OU DIGITALIZAR E ENVIAR PARA 0 E-MAIL PARA $email_pedidos<br> 
    </p></td>
  </tr>
</table>";
$texto = $texto1 . $texto2 . $texto3 . $texto4. $texto5 . $texto6;
// mail()
$titulo = "Retorno da compra do pedido" . $ID_DO_PEDIDO;
$headers = "Content-Type: text/html; charset=iso-8859-1\n"; 
$headers.= "From:$title<$email_site>\r\n";

$mail = mail ("$Email_Cli", "Prezado(a) ".$nome_cli.", $titulo", "$texto", "$headers");

if ($mail) {echo "<script>alert('Resposta enviada OK! para o cliente'); document.location='?acao=escolha'</script>";}
else       {echo "<script>alert('Resposta não enviada ao cliente - Erro'); document.location='?acao=escolha'</script>";} 
// mail()

}
                       }
?>

Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...