2013-08-17 4 views
0

im пытается создать электронное письмо, чтобы включить некоторые отсортированные данные в тело. Мое электронное письмо отправляет, но не имеет данных в теле от функций. по функциям также являются циклами while, и они генерируют эхо-содержимое html, если это имеет смысл? вот одна из функций.Запустить функцию внутри цикла while внутри строки?

function ye($coid){ 
$yest = date("Y-m-d", time() - 86400); 
$inouty= mysql_query("SELECT clockings.id AS cid,clockings.uid, clockings.con,  clockings.coff, staff.sname ,staff.id, staff.act, staff.coid FROM clockings LEFT JOIN staff ON clockings.uid=staff.id WHERE clockings.dte = '$yest' AND staff.coid =$coid ORDER BY staff.id, clockings.id")or die(mysql_error()); 
    while ($row = mysql_fetch_assoc($inouty)) { 
     $sname= $row['sname']; 
     $in= $row['con']; 
     $out= "- ". $row['coff']; 
     $id = $row['cid'];    
echo"$sname $in $out<br>";}} 

и это, где я называю это

$html_text = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'> 
        <html> 
        <head> 
         <meta http-equiv='Content-Type' content='text/html; charset=utf-8'> 
         <title>Email</title> 
        </head> 

        <body>details Current status for $nicedate as of $now<br>". tod($coid)."<br>Yesterdays Clockings<br>". ye($coid)."</body> 
        </html>"; 

Нет, если я изменить функцию возвращать значение вместо вторя я получаю только первую строку из результатов вместо полного цикла, но это включен в текст основного текста электронной почты, а также когда я вызываю функцию в конце скрипта, используя эхо в моей функции, я получаю желаемый результат. Есть ли способ, которым я могу заставить это работать? Заранее спасибо Nick

+0

Вы пробовали «песочницу» для эха $ inouty? также разделить $ inouty и работать с ним оттуда ... – Pogrindis

ответ

0

Поскольку ваш звонок пытается включить результат функции, вам просто нужно убедиться, что вы возвращаете все линии, сгенерированные по пути. Есть много способов сделать это, вот один из них:

function ye($coid) 
{ 
    $yest = date("Y-m-d", time() - 86400); 
    $inouty= mysql_query("SELECT clockings.id AS cid,clockings.uid, clockings.con,  clockings.coff, staff.sname ,staff.id, staff.act, staff.coid FROM clockings LEFT JOIN staff ON clockings.uid=staff.id WHERE clockings.dte = '$yest' AND staff.coid =$coid ORDER BY staff.id, clockings.id")or die(mysql_error()); 

    $result = ""; 

    while ($row = mysql_fetch_assoc($inouty)) { 
    $sname = htmlspecialchars($row['sname']); 
    $in = htmlspecialchars($row['con']); 
    $out = "- ". htmlspecialchars($row['coff']); 

    $result .= "$sname $in $out<br>"; 
    } 

    return $result; 
} 
+0

Thats got it, lol только был на этом как 4 часа :-(Спасибо за помощь, которую он оценил. – Nick

Смежные вопросы