SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 14.09.2006, 13:18:20
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
PDF mit fpdf

... da auf meinem Webserver die PDFlib nicht zur Verfügung steht, habe ich mich mit fpdf beschäftigt.
Im Prinzip einfach zu handhaben, solange es darum geht text-Dateien auszulesen und daraus ein PDF zu generieren oder auch statische Variablen aufzunehmen und diese formatiert auszugeben. Es gibt dazu auch einige Tutorials.
Doch, ich habe nichts darüber gefunden wie fpdf mit dynamischen Abfragen umgeht, mit z.B. Abfragen die aus der DB kommen oder im Umgang mit Templates oder wenigsten einen Hinweis ob dies überhaupt machbar ist.
Weis jemand Rat oder ein Tutorial welches darauf eingeht?

Mein Ziel ist es Berichte zu generieren. Das bedeutet die Datenbank wird nach bestimmten Kriterien abgefragt und diese sollen formatiert als PDF ausgegeben werden, um diese gegebenenfalls auch zu versenden. Alternativ habe ich über eine CSS-Lösung nachgedacht, doch dies bringt mich nicht wirklich weiter.

cu,
Franzx
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
  #2  
Alt 14.09.2006, 22:41:28
Willow Willow ist offline
Junior Member
 
Registriert seit: Sep 2002
Beiträge: 271
AW: PDF mit fpdf

ich arbeite ziemlich viel (und ziemlich komplex) mit fpdf -- eigentlich verstehe ich nicht dein problem.

fpdf erzeugt pdf-datein mittels php-anweisungen.

um - um ein beliebiges beispiel zu nennen - das datum in eine pdf-datei einzutragen, schreibe ich z.b.:

$pdf->Cell(90,0,"14.9.2006",0,L,1);


ich kann aber natürlich genauso schreiben:

$pdf->Cell(90,0,$datum,0,L,1);

und wenn ich das datum aus einer datenbank herauslese, mit "query ...." und dann $row = mysql_fetch_array($result) würda heissen:

$pdf->Cell(90,0$row[datum],0,L,1);

ob ich da eine string (unter anführungszeichen) oder eine variable (also $var) hinschreibe, ist völlig wurscht.

Geändert von Willow (14.09.2006 um 22:42:29 Uhr)
Mit Zitat antworten
  #3  
Alt 15.09.2006, 08:20:06
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: PDF mit fpdf

Hallo Willow,

vielen Dank für Dein anschauliches Beispiel.

Zitat:
Zitat von Willow

und wenn ich das datum aus einer datenbank herauslese, mit "query ...." und dann $row = mysql_fetch_array($result) würda heissen:
Ja, genau das ist mein Problem, aber wo platziere ich die query? Wie wird diese definiert, sprich wird die quere nur in "" eingeschloßen oder gibt es eigene Bezeichnungen dafür?
Oder das Ergebnis ist eine Liste und nicht nur ein möglicher Treffer. Wie wird das Array dann abgebildet bzw. positioniert?


cu,
Franzx
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
  #4  
Alt 15.09.2006, 09:24:23
Willow Willow ist offline
Junior Member
 
Registriert seit: Sep 2002
Beiträge: 271
AW: PDF mit fpdf

wo die abfrage (query) plaziest, ist egal - solange die variable, die du mit "$pdf->Cell(90,0,$datum,0,L,1);" in das pdf schreibst, vor dieser anweisung den wert zugewiesen bekommt.

wieder ein beispiel:

vorher (wie in fpdf vorgesehen) die pdf-datei erzeugen, einrichten, die grundangaben (wie z.b. hoch oder querformat etc) definieren


$result = mysql_db_query($db, "SELECT * FROM tabelle WHERE postleitzahl < '1000' ORDER BY postleitzahl");
// (aus datenbank werden alle einträge mit postleitzahlen über 1000 herausgesucht)

while($row = mysql_fetch_array($result))
// die werte der datenbanktabelle werden in das array "row" übertragen --> in einer schleife wird abgearbeitet,, solange "row" einen wert hat

$posy_y=30;
// die y-postition der ersten zeile wird festgelegt

{
$pdf->setXY(15,$pos_y);
// die position der zelle wird festgelegt mit x=15, y=30 bei der ersten zeile, ab dann 30+(6mm pro durchgang)

$pdf->Cell(90,0,$row[postleitzahl],0,L,1);"
// die zelle wird erzeugt

$pos_y=$pos_y+6;
// y wird pro durchgang um 6 mm erhöht, d.h. die postleitzahlen stehen im pdf untereinander mit einem abstand von 6 mm

} // while


wars das in etwa, was du wissen wolltest?

Geändert von Willow (15.09.2006 um 09:24:50 Uhr)
Mit Zitat antworten
  #5  
Alt 15.09.2006, 10:03:58
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: PDF mit fpdf

Zitat:
Zitat von Willow
wars das in etwa, was du wissen wolltest?
Ja, vielen Dank, damit komme ich der Sache schon näher. Mit Deiner Erklärung ist mir eben auch einer meiner dümmlichen Denkfehler aufgefallen.
Mit zur Verwirrung hatte beigetragen, dass ich immer meine Templ. mit in den möglichen Darstellungsprozess einbezogen hatte. Was für ein Unsinn, da die Darstellung nicht über die Templ. erfolgt, sondern dies natürlich durch die PDF-Definition ersetzt wird.
Werde mich mal ans Werk machen und sehen ob ich wirklich alles verstanden habe.

cu,
Franzx
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
  #6  
Alt 15.09.2006, 11:03:03
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: PDF mit fpdf

Was übersehe ich noch?

Habe Header, Footer, Capter definiert und es funktioniert.
Nach dem geschloßenem } der Funktion "class PDF extends FPDF", indem sich header, footer, capter befinden und vor

$pdf=new PDF();
$title='...

habe ich die query und die Variable bestimmt:
PHP-Code:
$result_bp mysql_query("SELECT * FROM DB WHERE ...") or die(mysql_error());
while(
$row mysql_fetch_array($result_bp));
$pos_y=30
bis hierhin funktioniert noch alles, das heißt die PDF wird erzeugt und die bereits definierten Kapitel werden angezeigt, natürlich noch leer.

Nutze ich nun Dein Beispiel:
PHP-Code:
{
$pdf->setXY(15,$pos_y);
// die position der zelle wird festgelegt mit x=15, y=30 bei der ersten zeile, ab dann 30+(6mm pro durchgang)

$pdf->Cell(90,0,$row['BP_NR'],0,L,1);"
// die zelle wird erzeugt

$pos_y=$pos_y+6;
// y wird pro durchgang um 6 mm erhöht, d.h. die postleitzahlen stehen im pdf untereinander mit einem abstand von 6 mm

ist die PDF leer.

In der Zeile
$pdf->Cell(90,0,$row[feld],0,L,1);"
habe ich das " weggelassen, am Ende der Zeile.

Woher kommt die $pdf, muss ich diese noch definieren?
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
  #7  
Alt 15.09.2006, 11:22:03
Willow Willow ist offline
Junior Member
 
Registriert seit: Sep 2002
Beiträge: 271
AW: PDF mit fpdf

so auf die schnelle fällt mir in deinem script auf:

while($row = mysql_fetch_array($result_bp));
$pos_y=30;

--> und danach kommt erst die klammer


ich würde unbedingt so schreiben:

$pos_y=30;
while($row = mysql_fetch_array($result_bp));
{
....
}

ich trau mich aber jetzt nicht zu behaupten, dass das der grund für den fehler ist

ich hab dir (ich muss nämlich weg und kommt erst nachmittag zurück, daher unter stress) ein script (original, gezippt) auf den server gestellt - zum anschauen: darin wird eine rechnung unter verwendung von db-datein erzeugt:

www.medienwerkstatt.at/faktura/pdf_erzeugen.zip

hoffe, du kannst was anfangen damit
Mit Zitat antworten
  #8  
Alt 15.09.2006, 11:45:41
KTB KTB ist offline
Member
 
Registriert seit: Mar 2006
Alter: 38
Beiträge: 599
AW: PDF mit fpdf

Noch nicht ganz korrekt!
PHP-Code:
$pos_y=30;
while(
$row mysql_fetch_array($result_bp))//; dieses Semikolon muss da weg!
{
....

__________________
In der Ruhe liegt die Kraft!
Mit Zitat antworten
  #9  
Alt 15.09.2006, 13:49:12
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: PDF mit fpdf

Ich verstehe es nicht. Es gibt einen Datensatz der zumindest angezeigt werden müßte. Nun habe ich alles auf das Minimum reduziert:
PHP-Code:

define
('FPDF_FONTPATH','./../font/');
require(
'./../inc/fpdf.php');
$pdf=new PDF('P','mm','A4');

$pdf=new PDF();

require_once (
'./config.php');
$result_bp mysql_query("SELECT * FROM DB LEFT JOIN ... WHERE ...") or die(mysql_error());
$pos_y=30;
while(
$row mysql_fetch_array($result_bp))
{
$pdf->setXY(15,$pos_y);
$pdf->Cell(10,200,$row[Gebiet],0,1,'L',1);
$pos_y=$pos_y+6;
}

$pdf->Output();
?> 
Es ergibt nur eine leere PDF.
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
  #10  
Alt 18.09.2006, 12:05:55
Franzx Franzx ist offline
Junior Member
 
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
AW: PDF mit fpdf

... nun habe ich zwei php-Dateien erzeugt.

Die Klasse fpdfext.php

PHP-Code:
// Pfad zum Font-Ordner
define("FPDF_FONTPATH","font/");
// fpdf-Klasse holen
require("fpdf.php");
// Definition der Extension
class PDF extends FPDF {
    
    
// Kopfzeile
    
function Kopfzeile(){
        
// Schrift setzen
        
$this->SetFont('Times','',15);
        
$datum date("d.m.Y");
        
// Text ueber Bild
        
$text "Überschrift wird mit Datum ausgegeben $datum";
        
$this->MultiCell(180,6,$text,0,'R',0);
    }

    
//Fusszeile
    
function Footer(){
        
// Datum ermitteln
        
$datum date("d.m.Y");
        
// Position 15mm ueber Seitenende
        
$this->SetY(-15);
        
// Schriftyp setzten
        
$this->SetFont('Times','I',8);
        
// Ausgabe
        
$this->Cell(0,10,'Seite '.$this->PageNo().'/{nb} - '.$datum.'',0,0,'L');
    }
    } 
und die zu startende Datei, in der die eigentliche Abfrage stattfinden soll.
PHP-Code:
// Klasse holen
include("pdf/fpdfext.php");
// neues PDF-Objekte
$pdf=new PDF('P','mm','A4');
// Anzahl Seiten berechnen
$pdf->AliasNbPages();
// pdf-Ausgabe starten
$pdf->Open();
// Seitenraender definieren
$pdf->SetMargins(15,15,15,15);
// Seite eroeffnen
$pdf->AddPage();
// Seitenkopf ausgeben
$pdf->Kopfzeile();
// Abstand einfuegen
$pdf->Ln(40);
// Daten ausgeben

// pdf-Ausgabe beenden
$pdf->Output(); 
So funktioniert es, es gibt die Überschrift und die Fusszeile, doch platziere ich eine DB-Abfrage bleibt die PDF leer.
__________________
Für die richtige Frage gibt's die richtige Antwort!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mir FPDF (genauer HTML2FPDF) Spark PHP für Fortgeschrittene und Experten 0 24.02.2006 09:06:02
FPDF Septacore PHP Grundlagen 1 19.02.2006 11:33:49
fpdf class local PHP Grundlagen 1 11.07.2005 11:29:36
Problem beim Erstellen einer PDF mit fpdf helge008 PHP für Fortgeschrittene und Experten 2 21.06.2004 16:34:29
Frage zu FPDF (FreePDF) elwood67 PHP für Fortgeschrittene und Experten 6 04.04.2004 09:26:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:57:15 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt