2013-05-17 2 views
0

내 데이터베이스에서 정보를 포함하는 이메일을 보내려면이 스크립트가 있습니다. 사용자는 데이터베이스에 위치가있는 항목을 1 개 이상 가질 수 있습니다. 따라서 사용자와 일치하는 행을 비우면 전송 된 이메일의 양은 보유한 행의 개수와 같습니다. 따라서 데이터베이스에 8 개의 항목이 있으면 8 개의 전자 메일을 보냅니다. 각각은 항목을 추가합니다. 첫 번째 이메일에는 하나의 항목이 있고 두 번째 전자 메일에는 두 개의 항목이있는 방식입니다. 나는 고객이 하나의 전자 우편을 얻도록 이메일을 보내기 전에 모든 정보를 얻는 간단한 방법을 찾으려고 노력하고있다. 논리적 인 방법은 정보를 반향하는 것이지만 PHP 변수를 사용하여이를 수행 할 수는 없습니다. 아래 코드에는 쿼리와 데이터베이스 연결이 포함되지 않았습니다. 어떤 도움이라도 사랑 받게 될 것입니다.PHP는 MySQL MySQL 가져 오기 배열

while ($row = mysql_fetch_array($query)) { 
$Items .= $row['Items']. " - Aisle " .$row['Loc']. "<p>&nbsp;</p>"; 
$to = "[email protected]"; 
$from = "[email protected]"; 
$subject = "Test"; 
$message = "$Items"; 
$headers = "MIME-Version: 1.0 \r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n"; 
$headers .= "From: [email protected]"; 
mail($to, $subject, $message, $headers); 
} 
+1

로 전환을 권합니다 그렇게되지 않습니다 것을 기억 하시겠습니까? – Fabio

+0

"." 데이터베이스의 항목 중 하나만 보냅니다. 점이 여러 항목을 보내려면 포함되어야합니다. 나는 유진에게 감사를 표했다. 도움을 받아 응답 한 사람 덕분입니다. –

+0

정상 평등으로 시작한 다음 연결해야합니다. 그렇지 않으면 올바르게 작동하지 않습니다. – Fabio

답변

1

그냥주기에서 기능을 보내 이동 :

while ($row = mysql_fetch_array($query)) { 
    $Items .= $row['Items']. " - Aisle " .$row['Loc']. "<p>&nbsp;</p>"; 

} 
if ($Items != '') { 
     $to = "[email protected]"; 
     $from = "[email protected]"; 
     $subject = "Test"; 
     $message = "$Items"; 
     $headers = "MIME-Version: 1.0 \r\n"; 
     $headers .= "Content-type: text/html; charset=iso-8859-1 \r\n"; 
     $headers .= "From: [email protected]"; 
     mail($to, $subject, $message, $headers); 
} 
+0

잘 작동했습니다. 도움에 감사드립니다. –

+2

@BobStone 당신은 그에게 그의 대표를주기 위해 대답을 올바르게 표시해야합니다. – Kevin

0

당신이 항목을 반복 할 때, 당신은 단지 메시지 전체가 아닌 이메일을 구축해야한다 .. 그것은 당신의 쿼리에 대한 자세한 내용을 모른 채 다음보다 훨씬 더 많은 일을하기 어렵다. 어쨌든 한번해볼 께 :

$message = ''; 

while ($row = mysql_fetch_array($query)) { 
    $Items = $row['Items']. " - Aisle " .$row['Loc']. "<p>&nbsp;</p>"; 
    $message .= "$Items"; 
} 

$headers = "MIME-Version: 1.0 \r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n"; 
$headers .= "From: [email protected]"; 
mail($to, $subject, $message, $headers); 

주 : 그대로 나는이 코드를 구현하지 않을 것입니다. 이는 코드를 구조화하는 방법에 대한 예제로 사용하기위한 것입니다.

0

귀하의 concatenation 잘못, 먼저 그런 다음 loop을 시작 루프

$Items = ''; 

를 외부 빈 같은 변수를 선언하고 모든 데이터를 얻어야한다 변수를 연결해야합니다.

while ($row = mysql_fetch_array($query)) 
{ 
    $Items .= $row['Items']. " - Aisle " .$row['Loc']. "<p>&nbsp;</p>"; 
} 

이제 이메일을 보낼 준비가되었습니다, outside your loop 또는 각 큐클에 대해 하나의 이메일로 끝납니다. 그래서 코드가이

$Items = ''; 
while ($row = mysql_fetch_array($query)) 
{ 
    $Items .= $row['Items']. " - Aisle " .$row['Loc']. "<p>&nbsp;</p>"; 
} 
$from = "[email protected]"; 
$subject = "Test"; 
$message = "$Items"; 
$headers = "MIME-Version: 1.0 \r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n"; 
$headers .= "From: [email protected]"; 
mail($to, $subject, $message, $headers); 

과 같을 것이다 그럼 왜 Items`가 연결된 $`당신이 mysql_* 기능을 내가 mysqli 또는 PDO