2015-12-01 3 views
1

Я пытаюсь повторить результаты запроса MySQL в тело письма для отправки через PHPMailer, но у меня возникают трудности. Запрос работает, поскольку я успешно создаю таблицу на странице, но, похоже, не может получить правильную привязку таблицы к переменной.Результаты MySQL в тексте PHPMailer Email

Мой код:

$body = '<html> 
        <body> 
         <table> 
          <thead> 
           <tr> 
            <th>Food</th> 
            <th>Quantity</th> 
            <th>Category</th> 
           <tr> 
          </thead> 
          <tbody>'. 
          while($row = $resultOrderE->fetch(PDO::FETCH_ASSOC)){ 
           echo ' 
             <tr> 
              <td>$row['food']</td> 
              <td>$row['quantity']</td> 
              <td>$row['category']</td> 
             </tr> 
           ';}.' 
          </tbody> 
         </table> 
        </body> 
       </html>'; 

Ошибки я получаю:

PHP Parse error: syntax error, unexpected 'while' (T_WHILE) 

Любые предложения? Благодаря!

ответ

0

Вы не можете конкретизировать цикл WHILE в строку.

вы должны перебрать и добавить к существующей строке на итерацию цикла

$html_string = '<html><body><table><thead><tr><th>Food</th><th>Quantity</th> <th>Category</th><tr></thead><tbody>'; 

while($row = $resultOrderE->fetch(PDO::FETCH_ASSOC)){ 
    $html_string .= 
    '<tr><td>'.$row['food'].'</td><td>'.$row['quantity'].'</td><td>'.$row['category'].'</td></tr>'; 
} 

// this will add the closing tags and now html_string has your built email 
$html_string .= '</tbody></table></body></html>'; 

так .= является важной частью, она concates строки в конец существующей строки

+0

Благодаря самому много. Не знал этого, но это имеет смысл. – TheAleMaster