FPDF kolommen verbergen

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.260
Hallo

Iemand ervaring met FPDF


Ik heb bijv. 8 kolommen in een tabel: , maar ik wil er maar 2 in de PDF in voorbeeld id en datum


Voor de head in tabel :
PHP:
$display_heading = array('id'=>'ID','datum'=> 'datum', );

En ik selecteer alleen id en datum als voorbeeld:
PHP:
[PHP] $result = mysqli_query($connString, "SELECT id  , datum ,
	   FROM  -"
[/PHP]
[/PHP]

fpdf 1.JPG

Toch worden alle kolommen(headers) van tabel in database weergegeven zie afbeelding

Ook wordt in 1e rij heading volgorde van naam rij in database aangehouden.

Iemand de oplossing?
 

Bijlagen

  • fpdf 1.JPG
    fpdf 1.JPG
    26,1 KB · Weergaven: 46
Laatst bewerkt:
Lijkt mij sterk, want die haal je niet eens op.
Wat doet die komma na het veld datum?
 
Nee dat klopt ook , ik merk dat het in de 1e rij met namen zit header heading

PHP:
<?php
//include connection file
include_once("connection.php");
include_once('libs/fpdf.php');
 
class PDF extends FPDF
{
// Page header
function Header()
{
 // Logo:afstand vanaf rechts, afstand vanaf boven , grote schalen
    $this->Image('logo.png',10,8,70);

    $this->SetFont('Arial','B',13);
    // Move to the right
    $this->Cell(80);
    // Title
    $this->Cell(80,10,'test',1,0,'C');
    // Line break
	// afstand tot tabel
    $this->Ln(20);
}
 
// Page footer
function Footer()
{
    // Position at 1.5 cm from bottom
    $this->SetY(-15);
    // Arial italic 8
    $this->SetFont('Arial','I',8);
    // Page number
    $this->Cell(0,10,'Pagina '.$this->PageNo().'/{nb}',0,0,'C');
}
}
 
$db = new dbObj();
$connString =  $db->getConnstring();



$display_heading = array('id'=>'ID', 'datum'=> 'datum');
 
 
 $result = mysqli_query($connString, "SELECT id ,
	DATE_FORMAT(datum,'%d-%m-%Y') AS datum
   FROM  t " 
 ) or die("database error:". mysqli_error($connString));
 
 

$header = mysqli_query($connString, "SHOW columns FROM t");

// P = portrait , L is landscape
$pdf = new PDF('L');
//header
$pdf->AddPage();
//foter page
$pdf->AliasNbPages();
// Font PDF cellen
$pdf->SetFont('Arial','',8);
//$pdf->SetFont('Arial','B',12);



foreach($header as $heading) {
	// celbreedte kop
$pdf->Cell(17,8,$display_heading[$heading['Field']],1);
}
foreach($result as $row) {
$pdf->Ln();
foreach($row as $column)
// celbreedte
$pdf->Cell(17,8,$column,1);
}
$pdf->Output();
?>
 
Laatst bewerkt:
PHP:
$header = mysqli_query($connString, "SHOW columns FROM t");
 
Met SHOW COLUMNS FROM tblname kan je inderdaad alle kolommen tonen. Dat is niet wat je wilt.
 
In jou voorbeeld worden nu alle eerste rijen met naam van kolommen opgehaald

https://www.w3schools.com/sql/sql_where.asp



CustomerID CustomerName ContactName Address City PostalCode Country

Ik wil als voorbeeld alleen
CustomerID, CustomerName en ContactName

De kop van de tabel wordt dus apart opgehaald met
PHP:
$header = mysqli_query($connString, "SHOW columns FROM t");

en uitevoerd met
PHP:
foreach($header as $heading) {
	// celbreedte kop
$pdf->Cell(17,8,$display_heading[$heading['Field']],1);
}

misschien de foreach aanpassen (namen handmatig invoeren) en ['Field']],1 zeg me ook niks Field kom ik ook nergens meer regen in alle code

Wat de inhoud van table betreft kan ik ophalen wat ik wil met

PHP:
$result = mysqli_query($connString, "SELECT CustomerID  , CustomerName ,
       FROM  -"
dat is geen probleem het gaat dus om de kop die apart wordt opgehaald
fpdf 1.JPG
 
Laatst bewerkt:
Met SHOW krijg je alleen informatie over diverse zaken in/van/over de database.
Met SELECT haal je de werkkelijke inhoud op van records in een tabel.

In je voorbeeld ga je uit van de volgende naamgeving
tabelnaam: t
velden: ID, tijd, datum

Het lijkt erop dat je 'Field' nog moet invullen.

Code:
// selecteer 3 velden van alle records uit tabel 't'
$selectQuery = "SELECT ID, tijd, datum FROM t WHERE 1";
// $header bevat nu alle records
$header = mysqli_query($connString, selectQuery);

// doorloop alle records die in $header staan
foreach($header as $heading) {
    // Doe $pdf->Cell per record in $heading
    $pdf->Cell(17,8,$display_heading[$heading['Field']],1);
}
 
Bedankt

Ik heb dus voorbeeld als kolom

id , tijd , datum, naam , aantal

nou wil ik alleen in tabel tonen de kolommen: id , tijd , datum

Voor de cellen is dat geen probleem daar ik kan selecteren wat ik wil met select , het gaat op de kop van tabel. zie afbeelding uit vorige posten

PHP:
$pdf->Cell(17,8,$display_heading[$heading['Field']],-1);

Ik weet niet wat er in Field moet worden ingevuld maar ik merk nu als ik cijfer erachter in -1 verander komt de gewenste kop
id , tijd , datum, te voorschijn , dat is dus goed en worden de koppen van naam en aantal niet meer getoond )ook niet leeg)
ik mis alleen de border om de koprij maar is niet grootste probleem . waar die -1 achter Field voor staat weet ik nog niet

Met -1 achter field gewenste resultaat , alleen geen border
fpdf2.JPG

Met 1 achter field
fpdf21.JPG
 
Laatst bewerkt:
Alle opties vind je hier
Code:
$pdf->Cell(w, h, txt, border, ln, align, fill, link);
 
zijn dit opties voor Field ? ik ben op zoek gegaan maar vind niks
 
Het zijn opties voor $pdf->Cell . Hiermee kan je een paar dingen van de tabel cellen bepalen. Je hebt nu
PHP:
$pdf->Cell(17, 8, $display_heading[$heading['Field']], 1);
17 = cel breedte.
8 = cel hoogte
$display_heading[$heading['Field']] = tekst in de cel
1 = toon een celrand (0 is geen rand)

Als ik bij stap 3 kijk in dit voorbeeld dan lijkt het alsof de header een losse titel is ipv veldnamen.
 
Die titel doel je op Employee list?
// Title
$this->Cell(80,10,'Employee list',1,0,'C');
deze staat los van table

De tabel bevat namen voor de rijen (th)
id , name ,salary, age
selecteer ik alleen maar id en name dan wordt salary en age als een lege cel getoond.

Met 1 geen borders om de Table head maar wel leeg van de niet geselecteerde of ik noet voor 0 kiezen maar dan heb ik geen borders

fpdf3.JPG
 
Je kan verder niet zoveel uit het 'Employee list' voorbeeld halen, het viel mij gewoon op.

Hoe ziet de html eruit die bij het plaatje van #13 hoort?
 
Is PDF dus...geen broncode


generate pdf.php in voorbeeld


wat php

PHP:
$display_heading = array('id'=>'ID', 'tijd'=> 'tijd', 'datum'=> 'datum');
 
 
 $result = mysqli_query($connString, "SELECT id , tijd , datum ,
	DATE_FORMAT(datum,'%d-%m-%Y') AS datum
   FROM .....
 
Laatst bewerkt:
Oops, inderdaad pdf :eek: Het stukje php lijkt mij prima.
Is er geen FPDF community die je op weg kan helpen met de laatste dingetjes?
 
Er staat wel "It works with PHP 4 and PHP 5". Werkt het ook met het huidige PHP 7 ?

aanv. Op GitHub (klik) staat dat het vanaf versie 6.2.19 compatible is met php 7.3.
Het is, wat ik lees, een relatief makkelijke tool met veel mogelijkheden. Wat kennis van php is wel nodig maar op GitHub staan 65 voorbeelden.
 
Laatst bewerkt:
V7-7.3 op beiden (TCPDF & FPDF) geen problemen ondervonden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan