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?