Динамическая таблица с рамкой - PullRequest
2 голосов
/ 06 мая 2019

Я создал оповещение по электронной почте, которое отправляется один раз в день со списком учетных записей, получающих доставку на следующий день.Это работает нормально, но поскольку я использую динамическую таблицу, некоторые пользователи жалуются, что ее трудно читать без каких-либо границ.

См. Пример: https://ibb.co/dGTvPsG

А вот как яя делаю это:

while($res = mysqli_fetch_array($result)) {  


$a[] = $res['Order_Number'];
$b[] = $res['Detail_ShipDate'];
$c[] = $res['ShipTo_Name'];
$d[] = $res['Status'];

$Order_Number = implode("<br />", $a);
$Detail_ShipDate = implode("<br />", $b);
$ShipTo_Name = implode("<br />", $c);
$Status = implode("<br />", $d);


$for_php_mailer = '<table style="border: 1px solid black;
width: 100%;font-size: 12px!important;">

<tr>
<th>Delivery Date</th>
<th>Order#</th>
<th>Company Name</th>
<th>Status</th>

<td>'.$Detail_ShipDate.'</td>
<td>'.$Order_Number.'</td>
<td>'.$ShipTo_Name.'</td>
<td>'.$Status.'</td>

</tr>

</table>';

Вместо этого мне нужно, чтобы это выглядело так: https://ibb.co/XsVgZWv

Я пробовал разные комбинации из следующих, но происходит одна или две вещи.Я получаю только 1 запись из таблицы или ошибку недопустимого смещения строки.

Я все еще учусь и буду очень признателен за помощь.

while($res = mysqli_fetch_array($result)) {  
foreach ( $res as $data ) 
{
$for_php_mailer ='
    <td>'.$data['Detail_ShipDate'].'</td>
    <td>'.$data['Order_Number'].'</td>
    <td>'.$data['ShipTo_Name'].'</td>
    <td>'.$data['Status'].'</td>';
}

1 Ответ

0 голосов
/ 06 мая 2019

Функция mysqli_fetch_array извлекает только один результат, поэтому вам не нужно зацикливать его на foreach. Вам просто нужно перебрать каждый результат. Вы также должны использовать mysqli_fetch_assoc, чтобы получить ассоциативный массив. Попробуйте что-то похожее на это:

while ($row = mysqli_fetch_assoc($result)) {
    $for_php_mailer .='
       <td>'.$row['Detail_ShipDate'].'</td>
       <td>'.$row['Order_Number'].'</td>
       <td>'.$row['ShipTo_Name'].'</td>
       <td>'.$row['Status'].'</td>';
}

Также убедитесь, что вы используете оператор присваивания конкатенации .= для продолжения добавления результатов вместо перезаписи переменной $for_php_mailer.

См. Документацию для получения дополнительной информации о myqsli_fetch_array: https://www.php.net/manual/en/mysqli-result.fetch-array.php

См. Документы для получения дополнительной информации о myqsli_fetch_assoc: https://www.php.net/manual/en/mysqli-result.fetch-assoc.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...