Avatar billede Morten Nybegynder
21. oktober 2005 - 15:14 Der er 13 kommentarer og
1 løsning

FPDF connect til database

Jeg har et problem

Jeg er ved at oprette et PDF dokument med FPDF.

Jeg skal hente nogle værdier fra min SQL database - men kan simpelthen ikke connect til den.

På alle mine sites (på vores intranet) bruger jeg:

require($_SERVER['DOCUMENT_ROOT'].'/function/connect_db.php');

[connect_db.php]:
<?php
    include_once('adodb/adodb.inc.php');
    $driver = 'mssql';
    $server = 'SERVER_NAVN';
    $user = 'BRUGERNAVN';
    $pwd = 'PASSWORD';
    $db = 'DB_NAVN';
    $conn = ADONewConnection($driver);
    $conn->Connect($server,$user,$pwd,$db);
?>

Men hvis jeg gør det på min fpdf side brokker den sig over at der allerede er sendt data til headeren ??? hvorfor det?

Nogen der kan hjælpe??
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 15:51 #1
Der står måske en tom linie, eller et mellemrum i din include-fil. Altså:
1) Intet som helst før <?php
2) Intet som helst efter ?>
Avatar billede Morten Nybegynder
21. oktober 2005 - 16:08 #2
Okay det havde jeg ikke men byttede om på følgende linie ?

require($_SERVER['DOCUMENT_ROOT'].'/function/connect_db.php');
require($_SERVER['DOCUMENT_ROOT'].'/function/fpdf/fpdf.php');

og nu brokker den sig ikke...

men jeg får ingen værdier i mine variabler ??

            $sql=mssql_query("SELECT * FROM Customer_Claim_Chd WHERE claim_nbr = '".$_GET[claim_nbr]."'");   

                while($info = mssql_fetch_array($sql));
                    {
                            $cust_name = $info[cust_name];
                            $cust_adress = $info[cust_adress];
                            $cust_po_code = $info[cust_po_code];
                            $cust_city = $info[cust_city];
                            $cust_contact = $info[contact_person];
                    }       

                //Instanciation of inherited class
                $pdf=new PDF();
                $pdf->AliasNbPages();
                $pdf->AddPage();
                $pdf->SetFont('Times','',12);
                $pdf->Cell(0,10,'-'.$_GET[claim_nbr].'-',0,1);
                $pdf->SetFont('Arial','',15);
                $pdf->Cell(0,10,$cust_name,0,1);
                $pdf->SetFont('Arial','',15);
                $pdf->Cell(0,10,$cust_po_code,0,1);
                $pdf->SetFont('Arial','',15);
                $pdf->Cell(0,10,$cust_city,0,1);
                $pdf->SetFont('Arial','',15);
                $pdf->Cell(0,10,'Hello World');
                $pdf->Output();

Eneste som den skriver er min værdien i claim_nbr og Hello World...

Skal man på en eller anden måde Echo værdierne (ved godt man ikke kan bruge echo for den skriver til skærmen men en anden kommando)????????????
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 16:14 #3
$_GET[claim_nbr] er måske tom ?
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 16:16 #4
Eller findes måske ikke i din tabel.

Gør det også til en god vane at skrive PHP-korrekt kode:

      $cust_name = $info['cust_name'];

osv.
Avatar billede Morten Nybegynder
21. oktober 2005 - 17:13 #5
Som jeg skrev får jeg claim_nbr ($_Get[claim_nbr]

Og det findes i tabellen

Og har prøvet med ' ' omkring - hjælper heller ikke...????
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 17:16 #6
Hvis dit claim_nbr findes, så kan det vel kun være fordi felterne ikke hedder 'cust_name' osv.
Avatar billede Morten Nybegynder
21. oktober 2005 - 18:45 #7
tjae men det gør de... jeg tænkte at måske når det nu var et objekt så skulle man skrive noget andet for at få variable udskrevet ??

Men jeg må gå det hele igennem igen fra A-Z for der må jo være en brist et sted....
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 18:47 #8
Prøv lige at vise en

  print_r($info);

så vi kan se hvad der rent faktisk står (gerne uden det der PDF-halløj).
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 18:58 #9
Ok, jeg kan se en fejl ;) Ret

                while($info = mssql_fetch_array($sql));
                    {
                            $cust_name = $info[cust_name];
                            $cust_adress = $info[cust_adress];
                            $cust_po_code = $info[cust_po_code];
                            $cust_city = $info[cust_city];
                            $cust_contact = $info[contact_person];
                    }       

til

                while($info = mssql_fetch_array($sql))
                    {
                            $cust_name = $info[cust_name];
                            $cust_adress = $info[cust_adress];
                            $cust_po_code = $info[cust_po_code];
                            $cust_city = $info[cust_city];
                            $cust_contact = $info[contact_person];
                    }
Avatar billede Morten Nybegynder
21. oktober 2005 - 19:17 #10
Ingenting...

Altså jeg gjorde således:
            $sql=mssql_query("SELECT * FROM Customer_Claim_Chd WHERE claim_nbr = '".$_GET[claim_nbr]."'");   

                while($info = mssql_fetch_array($sql));
                    {
                            print_r($info);               
                            $cust_name = $info[cust_name];
                            $cust_adress = $info[cust_adress];
                            $cust_po_code = $info[cust_po_code];
                            $cust_city = $info[cust_city];
                            $cust_contact = $info[contact_person];
                    }
Avatar billede Morten Nybegynder
21. oktober 2005 - 19:20 #11
Det er derfor jeg elsker Eksperten.....!!!

Hvorfor så jeg ikke det selv...

Nu virker det - og har også gjort som du sagde med ' ' omkring $info variablerne...

Smid et svar... og tusind tak for hjælpen!!!!!
Avatar billede Morten Nybegynder
21. oktober 2005 - 19:21 #12
PS. skal der også være '' om når det er tal ???
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 19:23 #13
Du skal altid, når du slår op med et navn/streng bruge '...':

  $info['cust_name'];

Det virker typisk også uden, men du kan faktisk ikke være sikker. Har du et array, hvor du slår op med et tal:

  $a[0]

skal der ikke '...'¨om.

Jeg samler slet ikke på point. Svar selv, accepter eget svar. Det her var en af de sjove ;)
Avatar billede Morten Nybegynder
21. oktober 2005 - 20:17 #14
Nå men endnu engang tusind tak..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester