Vraag & Antwoord

Webprogrammeren & scripting

PDF bestand maken vanuit Mysql (opgelost)

Anoniem
Landzaat
4 antwoorden
  • Hallo,

    Ik probeer met onderstaande code een PDF bestand te maken.
    Alleen lukt dit nog niet helemaal. Het pdf bestand wordt wel geopend maar zonder gegevens uit de database. \

    Het bestand wordt aangesproken met bestandsnaam.php?ID=$ID.
    De $ID wordt gevuld vanuit een formulier.

    Daarna moet er in de database gezocht worden naar dit ID en dan vervolens alle velden weergeven.

    Wie kan mij vertellen wat hier mis gaat ?

    Alvast bedankt.

    Landzaat


    De code is:

    [code:1:a2fc9075e0]

    <?php
    require ('pdf/fpdf.php');

    $datahost = "localhost"; // dbase hostname
    $datauser = "gebruiker"; //dbase username
    $datapass = "wachtwoord"; // dbase password
    $dataname = "database"; // dbasename

    // Maak connectie met database

    $db = mysql_connect($datahost, $datauser, $datapass) or die(mysql_error());
    mysql_select_db($dataname, $db) or die(mysql_error());

    $sql = "select * from member where ID = $ID ";
    $result = mysql_query($sql, $db);

    if ($myrow = mysql_fetch_array($result))
    {

    do
    {
    $ID = $myrow["ID"];
    $Name1 = $myrow["Name1"];
    $Fax = $myrow["Fax"];

    } while ($myrow = mysql_fetch_array($result));


    class PDF extends FPDF
    {
    //page header
    function Header()
    {
    //Arial vet 15
    $this->SetFont('Arial', 'B', 12);

    //Beweeg naar rechts
    $this->cell(50);

    //Titel
    //$this->Cell(90,10, 'Banned ophef formulier',1,0,'C');
    $this->Image('img/logo_printen.jpg', 80, 10, 50, 25);

    //Line break
    $this->Ln(20);


    //Tekst voor het formulier
    $this->Ln(25);

    $this->Ln(5);
    $this->Cell(90, 1, 'Naam:' );
    $this->Ln(5);
    $this->Cell(90, 1, $Name1);

    $this->Ln(20);
    }

    //page footer
    function Footer()
    {
    //Positie 1,5 cm van de onderkant
    $this->Sety(-15);

    //Arial cursief 8
    $this->SetFont('Arial', 'I', '8');

    //Pagina nummer
    $this->Cell(0, 10, 'Pagina ' . $this->Pageno() . '/{nb}', 0, 0, 'c');
    }

    }

    //aanroepen van nieuwe class
    $pdf = new PDF();
    $pdf->AliasNbPages();
    $pdf->AddPage();
    $pdf->setFont('Times', '', 12);
    $pdf->output();

    }

    ?>
    [/code:1:a2fc9075e0]
  • dit is verkeerd gebruik van n class; zij kan geen variabelen van buiten de class gebruiken. Zoiets moet je doen:

    [code:1:e67811a3cf]<?php
    require ('pdf/fpdf.php');

    (…) // set up database connection + query

    if ($myrow = mysql_fetch_array($result))
    {
    //aanroepen van nieuwe class
    $pdf = new PDF();
    $pdf->AliasNbPages();
    $pdf->AddPage();
    $pdf->setFont('Times', '', 12);

    while ($myrow = mysql_fetch_array($result));
    {
    $pdf->Ln(2)
    $pdf->Cell($myrow["ID"]);
    // en zet hier de andere gegevens uit de db in de pdf
    }

    $pdf->output();
    }

    class PDF extends FPDF
    {
    //page header
    function Header()
    {
    //Arial vet 15
    $this->SetFont('Arial', 'B', 12);

    //Beweeg naar rechts
    $this->cell(50);

    //Titel
    //$this->Cell(90,10, 'Banned ophef formulier',1,0,'C');
    $this->Image('img/logo_printen.jpg', 80, 10, 50, 25);
    }

    //page footer
    function Footer()
    {
    //Positie 1,5 cm van de onderkant
    $this->Sety(-15);

    //Arial cursief 8
    $this->SetFont('Arial', 'I', '8');

    //Pagina nummer
    $this->Cell(0, 10, 'Pagina ' . $this->Pageno() . '/{nb}', 0, 0, 'c');
    }

    }
    // NB: de inspringing van deze class is nu niet netjes…
    ?> [/code:1:e67811a3cf]
  • Bedankt voor uw reactie.
    Na het plaatsen van de code kan het script de class pdf niet niet vinden op regel 20 zie * in het script.

    De code is:

    [code:1:9f00ed04b5]
    <?php
    require('pdf/fpdf.php');

    //Controleren of gebruiker ingelogd is. Zo niet inlog pagina weergeven.
    require_once ('logincontrole.php');

    //Config bestand laden met daarin database gegevens + functies.
    require_once ('config.php');

    // Laden van de PDF instellingen

    //(…) // set up database connection + query

    $sql = "select * from member where ID = $ID ";
    $result = mysql_query($sql, $db);

    if ($myrow = mysql_fetch_array($result))
    {
    //aanroepen van nieuwe class
    $pdf = new pdf(); //* hier loopt het script vast (Regel 20)
    $pdf->AliasNbPages();
    $pdf->AddPage();
    $pdf->setFont('Times', '', 12);

    while ($myrow = mysql_fetch_array($result));
    {
    $pdf->Ln(2);
    $pdf->cell($myrow["ID"]);
    // en zet hier de andere gegevens uit de db in de pdf
    }

    $pdf->output();
    }

    class PDF extends FPDF
    {
    //page header
    function Header()
    {
    //Arial vet 15
    $this->SetFont('Arial', 'B', 12);

    //Beweeg naar rechts
    $this->cell(50);

    //Titel
    //$this->Cell(90,10, 'Banned ophef formulier',1,0,'C');
    $this->Image('img/logo_printen.jpg', 80, 10, 50, 25);
    }

    //page footer
    function Footer()
    {
    //Positie 1,5 cm van de onderkant
    $this->Sety(-15);

    //Arial cursief 8
    $this->SetFont('Arial', 'I', '8');

    //Pagina nummer
    $this->Cell(0, 10, 'Pagina ' . $this->Pageno() . '/{nb}', 0, 0, 'c');
    }

    }
    // NB: de inspringing van deze class is nu niet netjes…
    ?>
    [/code:1:9f00ed04b5]
  • het kan zijn dat klassenaam hoofdletter gevoelig is. Daarnaast moet de klasse gedeclareerd zijn voordat je m gebruikt. het gedeelte class { (…) } moet dus bovenaan de code, mijn fout.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.