За последние 24 часа нас посетили 17424 программиста и 1707 роботов. Сейчас ищут 1743 программиста ...

PHP+ FPDF+MS SQL Server 2008

Тема в разделе "MSSQL", создана пользователем Allkin, 18 май 2010.

  1. Allkin

    Allkin Активный пользователь

    С нами с:
    18 май 2010
    Сообщения:
    1
    Симпатии:
    0
    Добрый день!
    Очень нужна помощь:
    Требуется вывести результаты запроса в файл pdf в форме отчёта таблицей.
    Пользуюсь классом fpdf.
    Попробовала сначала с простым запросом, даже с ним не получается.

    Код класса:

    Код (Text):
    1.  
    2. <?php
    3. require('fpdf.php');
    4.  
    5. class PDF extends FPDF
    6. {
    7. function Table($sql,$col)
    8. {
    9.     global $conn;
    10.  
    11.     //Query
    12.     $res=odbc_do($conn,$sql);
    13.     if(!$res)
    14.         die('SQL error');
    15.  
    16.     //Header
    17.     $this->SetFillColor(255,0,0);
    18.     $this->SetTextColor(255);
    19.     $this->SetDrawColor(128,0,0);
    20.     $this->SetLineWidth(.3);
    21.     $this->SetFont('','B');
    22.     $tw=0;
    23.     foreach($col as $label=>$width)
    24.     {
    25.         $tw+=$width;
    26.         $this->Cell($width,7,$label,1,0,'C',1);
    27.     }
    28.     $this->Ln();
    29.  
    30.     //Rows
    31.     $this->SetFillColor(224,235,255);
    32.     $this->SetTextColor(0);
    33.     $this->SetFont('');
    34.     $fill=false;
    35.     while(odbc_fetch_row($res))
    36.     {
    37.         foreach($col as $field=>$width)
    38.             $this->Cell($width,6,odbc_result($res,$field),'LR',0,'L',$fill);
    39.         $this->Ln();
    40.         $fill=!$fill;
    41.     }
    42.     $this->Cell($tw,0,'','T');
    43. }
    44. }
    45. ?>
    Код sql.php с самим запросом:

    Код (Text):
    1.  
    2. <?php
    3. require('rep2.php');
    4.  
    5. $conn=odbc_connect('DSN1','','');
    6. if(!$conn)
    7.     die('Connection failed');
    8. $pdf=new PDF();
    9. $pdf->AddPage();
    10. $pdf->SetFont('Arial','',14);
    11. $sql='SELECT Name_NN, Code, Shifr FROM Sschools';
    12. $col=array('Name'=>50, 'Code'=>40, 'Shifr'=>100);
    13. $pdf->Table($sql,$col);
    14. $pdf->Output();
    15. ?>
    Ошибка:
    Warning: odbc_result() [function.odbc-result]: Field Name not found in I:\xampplite\htdocs\Diplom\Report\rep2.php on line 37

    Warning: odbc_result() [function.odbc-result]: Field Name not found in I:\xampplite\htdocs\Diplom\Report\rep2.php on line 37

    Warning: Cannot modify header information - headers already sent by (output started at I:\xampplite\htdocs\Diplom\Report\rep2.php:1) in I:\xampplite\htdocs\Diplom\Report\fpdf.php on line 1008
    FPDF error: Some data has already been output, can't send PDF file