Error catching Foreach data and sending to PHPMailer

0

I make a query in the database and I'm printing the screen normally through foreach . I'm having trouble getting the data from foreach and sending it to PHPMailer.

My code:

include "banco.php";    
function BuscaAlgo($conexao){    
      $query = "SELECT USU.experiencia,
                       USU.altura,
                       USU.peso,
                       PRAN.exp_ref,
                       PRAN.altura_ref,
                       PRAN.peso_ref,
                       PRAN.tipo_prancha,
                       PRAN.tamanho_prancha, 
                       PRAN.meio_prancha, 
                       PRAN.litragem_prancha       
                        FROM DADOS_USUARIO AS USU 
                             INNER JOIN PRANCHA AS PRAN
                                 on USU.experiencia = PRAN.exp_ref
                                  WHERE USU.altura = PRAN.altura_ref
                                    AND USU.peso = PRAN.peso_ref
                                      ORDER BY USU.usuario DESC LIMIT 1";

      //RETORNA A MENSAGEM COM O UTF8
      mysqli_set_charset($conexao, "utf8");

      //VARIÁVEL QUE GUARDA A CONSULTA NO BANCO
      $resultado = mysqli_query($conexao,$query);

        if( !$resultado ){
          die("Consulta falhou.");
        }

      $retorno = array();

      //PEGA TODOS OS VALORES DA CONSULTA E INSERE NO ARRAY $retorno[];
      while($experiencia = mysqli_fetch_assoc($resultado)){
        $retorno[] = $experiencia;
      }

  return $resultado;
}

$resultado = array();
$resultado = BuscaAlgo($conexao);

//MEU FOREACH -> IMPRIME NA TELA 
foreach($resultado as $valor){
   header('Content-Type: text/html; charset=utf-8');
   echo "<span class='desc'>TAMANHO 1:</span>"; echo $valor["tamanho_primeiro"]; print("<br>"); 
   echo "<span class='desc'>TAMANHO 2:</span>"; echo $valor["tamanho_segundo"]; print("<br>"); 
   echo "<span class='desc'>TAMANHO 3:</span>";  echo $valor["tamanho_terceiro"];  





include 'PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'minhaSENHA';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->IsHTML(true);     
$mail->From = '[email protected]';
$mail->FromName = 'REMETENTE';
$mail->addAddress('[email protected]');
$mail->Subject = 'E-mail PHPMailer';
$mail->Body;
 foreach($resultado as $valor){
  $mail->Body .=$valor["tamanho_primeiro"];
  $mail->Body .=$valor["tamanho_segundo"];
  $mail->Body .=$valor["tamanho_terceiro"];
 }

// Envia o e-mail e captura o sucesso ou erro
if($mail->Send()):
    echo 'Êxito no envio!';
else:
    echo 'Erro ao enviar Email:' . $mail->ErrorInfo;
endif;

 return $valor;
} 

What am I doing wrong?

obs: The code for PHPMailer is working correctly. I tested it in another file, sending some text and sending it successfully.

# UPDATE

// FOREACH

foreach($resultado as $valor){
   header('Content-Type: text/html; charset=utf-8');
   echo "<span class='desc'>TAMANHO 1:</span>"; echo $valor["tamanho_primeiro"]; print("<br>"); 
   echo "<span class='desc'>TAMANHO 2:</span>"; echo $valor["tamanho_segundo"]; print("<br>"); 
   echo "<span class='desc'>TAMANHO 3:</span>";  echo $valor["tamanho_terceiro"];  

  $tamanho_pri = $valor["tamanho_primeiro"];
  $tamanho_seg = $valor["tamanho_segundo"];
  $tamanho_ter = $valor["tamanho_terceiro"];    
}

// PHPMAILER

$mail->Body = $tamanho_pri;
$mail->Body .= $tamanho_seg;
$mail->Body .= $tamanho_ter;

I've done it this way and it's working. But is this the best way to follow best practices?

    
asked by anonymous 22.06.2016 / 21:20

0 answers