Проблема с обработкой данных из msql

Есть несколько таблиц:

  • orders - основные данные заказов,
  • order_item - товары в заказе,
  • products - информация о товарах,
  • clients - клиенты компании,
  • admin - таблица с администраторами системы.

Получается вывести данные из БД в файл, но не получается их кастомизировать под "нужды".

Код:

$wh = $conn->query('SELECT orders.*,clients.*,adm.*,oi.*, pos.*  FROM orders AS orders 
INNER JOIN clients ON orders.client=clients.cl_id 
INNER JOIN admin AS adm ON orders.admin_id=adm.admin_ID 
INNER JOIN order_item AS oi ON orders.id  =oi.order_id 
INNER JOIN products AS pos ON  oi.product_id= pos.p_id WHERE orders.date = "'.$_GET['date'].'"');
    

require_once $_SERVER['DOCUMENT_ROOT']. '/vendor/autoload.php';

// This will output the barcode as HTML output to display in the browser
     $mpdf = new mPDF('utf-8','A4');
     

$ss = $wh->fetch_all(MYSQLI_ASSOC);
foreach($ss as $ord){
$table .= "<table><tr><td>".$ord['p_name']."</td></tr></table><br>";

}

$mpdf->WriteHTML('

'.$table.'


');
$mpdf->Output('docs/Отчет по заказам -'.$_GET['i'].'.pdf');
header('Location: docs/Отчет по заказам -'.$_GET['i'].'.pdf');   

Желаемый результат

Добился только вот этот ужас


Ответы (1 шт):

Автор решения: DrMcSheen

Пишу в ответ, ибо в комментах код несмотрибельный. Вот здесь у тебя для каждого значения каждый раз создаётся новая таблица с одним полем на строке.

$table .= "<table><tr><td>".$ord['p_name']."</td></tr></table><br>";

А если тебе надо в одну таблицу вставить несколько строк, делай так:

$table = "<table>";
foreach($ss as $ord){
    $table .= 
        "<tr>   // следующая строка
            <td>".$ord['p_name']."</td>    // столбцы в строке
            <td>".$ord['p_count']."</td>   // столбцы в строке
            <td>".$ord['p_price']."</td>   // столбцы в строке
            <td>".$ord['p_all']."</td>   // столбцы в строке
        </tr>";
}
$table .= "</table><br>";
→ Ссылка