0
의견에 다음 제안 사항으로 인해 코드가 업데이트되었습니다. 이제 문제가 발생합니다. 내가 기준과 일치하는 모든 사용자에게 전자 메일 보내기
Warning: Invalid argument supplied for foreach() in /home/user/public_html/cronmailinitial.php on line 22
왜
를 얻을 여기에 오류가<?php
require_once "config.php";
$idspam = "1";
$sql = "SELECT * FROM company WHERE ID = '$idspam'";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
$companyname = $row['CompanyName'];
}
$sql = "SELECT * FROM users";
$result = mysql_query($sql);
$rows = mysql_fetch_array($result);
foreach($rows as $row)
{
$Agent = $row['username'];
$fullname = $row['fullname'];
$phone = $row['phone'];
$Agentmail = $row['mail'];
$checkstat = "New customer";
$result = mysql_query("SELECT * FROM data WHERE Status = '$checkstat' AND Agent = '$Agent'");
$rows = mysql_fetch_array($result);
foreach($rows as $row)
{
$LastName = $row['LastName'];
if (empty($row['ProductPriceUSD'])) {
$ProductPriceEUR = $row['ProductPriceEUR'];
$symbol = "€";
$Productprice = ($ProductPriceEUR . $symbol);
}
if (empty($row['ProductPriceEUR'])) {
$ProductPriceUSD = $row['ProductPriceUSD'];
$symbol = "$";
$Productprice = ($symbol . $ProductPriceUSD);
}
$CustomerPriceRAW = $row['CustomerPrice'];
$eur = "€";
$email = $row['Email'];
$a = mt_rand(100000,999999);
$MD5Pass = md5($LastName . $a);
$type = "Initial";
$sql = "SELECT * FROM emails WHERE AddedBy = '$Agent' ORDER BY RAND() LIMIT 1";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
$content = $row['Content'];
$subject = $row['Subject'];
}
$Newstatus = "Contacted";
$Newline = "<br>";
$replaceWord = array(
"[name]" => $row['FirstName'],
"[lastname]" => $row['LastName'],
"[product]" => $row['ProductName'],
"[username]" => $row['CustomerUser'],
"[agent]" => $row['Agent'],
"[productssold]" => $row['ProductsSold'],
"[customerprice]" => ($CustomerPriceRAW . $eur),
"[password]" => ($LastName . $a),
"[productprice]" => $Productprice,
"[newline]" => $Newline,
);
ob_start();
include("./email/mailtemplate.php");
$sendmsg = ob_get_clean();
$message = $sendmsg;
$body = strtr($content, $replaceWord);
$headers = "From:".$companyname." ".$Agentmail."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$contactdate = date("Y-m-d");
$sevendays = date('Y-m-d', strtotime("+7 days"));
$todo = "Followup";
mysql_query("UPDATE data SET CustomerPass = '$MD5Pass', Status = '$Newstatus', Contacted = '$contactdate', SevenDays = '$sevendays', ToDo = '$todo'");
mail($email, $subject, $body, $headers);
}
}
?>
그리고 다음은 새로운 코드인가? 나는 모든 직원 (첫 번째 foreach)을 골라 각 고객에게 연락하고 싶다. 그래서 예입니다 : 에이전트 "요"를 이 어쨌든 할 생각이야 무슨 그
보내기 다른 전자 메일 템플릿 을 선택 그들 각각은 "존" 추가 한 모든 고객을 선택합니다. 미리 감사드립니다
Heya, 나도 알아.하지만 지금은 변경하기에는 너무 늦었 어. 업데이트에서 개정 될거야. '$ result = mysql_query ("SELECT * FROM data WHERE Status = '$ checkstat'"); while ($ row = mysql_fetch_array ($ result))' 내가 말한 것처럼 'while'을 'foreach'로 변경하고 처음부터 전자 메일 템플리트 선택 코드를 마이그레이션하는 것보다 어디입니까? –
mysql_fetch_array를 자신의 줄에 넣으십시오. 그것을 반복하지 마십시오. 이 호출의 결과를 사용하여 값을 반복하십시오. 배열을 반환합니다. – ethrbunny
코드를 업데이트했지만 이번에는 새로운 오류가 발생합니다. –