Проблема с выводом данных mysql + php + tcpdf на лету

Модератор: Модераторы разделов

ulan44
Сообщения: 80

Проблема с выводом данных mysql + php + tcpdf на лету

Сообщение ulan44 »

Запросы выполняются но в pdf отчет выводит всего одну строчку с данными а их там гора целая...
Помогите plz а то уже мозг кипит

Код: Выделить всё

<?php
define('SQL_INC',1);
require 'inc/common.inc.php';

require_once 'inc/pdf/tcpdf.php';       // подключаем библиотеку

// создаем объект TCPDF - документ с размерами формата A4
// ориентация - книжная
// единицы измерения - миллиметры
// кодировка - UTF-8

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
# $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// убираем на всякий случай шапку и футер документа
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);

$pdf->SetMargins(20, 25, 25);           // устанавливаем отступы (20 мм - слева, 25 мм - сверху, 25 мм - справа)
$pdf->AddPage();                        // создаем первую страницу, на которой будет содержимое

$pdf-> SetFont('arial','',16);          // Устанавливаем шрифт и его размер
$pdf->SetTextColor(255,0,0);            // Устанавливаем цвет текста заголовка (красный)
$pdf->SetFillColor(255,255,0);          // Устанавливаем цвет заливки (желтый)
$pdf->SetXY(20,20);                     // Задаем абсциссу и ординату текущей позиции
$pdf->SetDrawColor(255,0,0);            // Устанавливаем цвет для рисования контура вокруг заголовка (красный)

// Выводим ячейку (прямоугольную область), которая будет заголовком:
// 100 - ширина ячейки; 10 - высота ячейки;
// $text - текст; 1 - толщина рамки;
// 1 - текущая позиция после вывода ячейки будет в начале следующей строки;
// 'C' - выравнивание по центру; 1 - заливка фона ячейки

//Запрос
$db->sql_query("select user_name from users where id='$id_user'");
    $user = $db->sql_fetchrow();

$logo='Ведомость по контрагенту:';
    $pdf->Cell(170, 10,"$logo $user[0]", 1, 1, '',1);

$pdf->Image('templates/img/logo.jpg',3,3,40,15,'JPG','https://localhost/');    // Вставляем изображение, которое будет ссылкой

$pdf->SetFont('arial','',12);           // Устанавливаем шрифт для текста
$pdf->SetXY (10,40);                    // Устанавливаем позицию начала текста
$pdf->SetTextColor(0,0,0);              // Устанавливаем цвет текста
$pdf->SetDrawColor(0,0,0);              // Устанавливаем цвет для рисования контура вокруг заголовка (красный)

$lt=date("d_m_y");                      // Определяем дату

//Запрос данных
$sql = "select kontragent, val, nach_dolg, vverh_dolg, vniz_dolg, nash_dolg, klient_dolg from vk_$lt where id_user='0000114'";
 $result = $db->sql_query($sql);
while ($client = mysql_fetch_array($result)){

$html = <<<EOF
<!-- EXAMPLE OF CSS STYLE -->
<style>

table {
        font-family:arial;
        font-size:8pt;
        background-color: #cfcfcf;
}

table.data {
        background:#cfcfcf;
        margin-bottom:5px;
}

td.head {
        background:#e7e7e7;
        font-weight:arial;
        height:10px;
}

td.data1 {
        background:#ffffff;
        height:10px;
}

td.data2 {
        background:#ffffc0;
        height:10px;
}
</style>
 <table class="data" border="1" cellspacing="0"  cellpadding="0" width="105%">
        <tr align="center">
            <td class="head" width="35%" rowspan="2">Контрагент/Договор</td>
            <td class="head" width="5%" rowspan="2">Вал</td>
            <td class="head" width="13%" rowspan="2">Нач. долг клиента</td>
            <td class="head" width="13%" rowspan="2">Увеличение долга <font color="red">+</font></td>
            <td class="head" width="13%" rowspan="2">Уменьшение долга <font color="blue">-</font></td>
            <td class="head" width="26%" colspan="2">На конец периода</td>
        </tr>
        <tr align="center">
            <td class="head">Переплата</td>
            <td class="head">Задолженность</td>
        </tr>
        <tr align="center">
            <td>$client[kontragent]</td>
            <td>$client[val]</td>
            <td>$client[nach_dolg]</td>
            <td>$client[vverh_dolg]</td>
            <td>$client[vniz_dolg]</td>
            <td>$client[nash_dolg]</td>
            <td>$client[klient_dolg]</td>
        </tr>
</table>

EOF;
}
$pdf->writeHTML($html, true, false, true, false, '0');

$pdf->lastPage();

$pdf->Output('doc.pdf', 'I');           // выводим документ в браузер, заставляя его включить плагин для отображения PDF (если имеется)
?>
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: Проблема с выводом данных mysql + php + tcpdf на лету

Сообщение KernelPanic »

Дак Вы в цикле while каждый раз $html присваиваете новое значение на основе очередной строки из БД, таким образом только последняя строка и запишется ;)
Спасибо сказали: