Vraag & Antwoord

Webprogrammeren & scripting

PDF bestand maken vanuit Mysql (opgelost)

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

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

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