[gelöst]Mittels php-script PDF-Dokumente generieren

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

[gelöst]Mittels php-script PDF-Dokumente generieren

Postby steffen0366 » 15. December 2011 13:44

Hallo zusammen,

stehe vor einem riesigen Problem. Habe vor ca. 14 Tagen in unserem Betriebsintranet auf XAMPP 1.7.7 umgestellt. Verlief soweit alles Problemlos.

Nun habe ich jedoch festgestellt, dass meine PHP-Scripte, welche ein PDF-Dokument generieren sollen, keine Ergebnisse mehr bringen. Das PDF-Dokument wird generiert, jedoch werden die ermittelten Daten aus der Datenbank nicht angezeigt werden.

Code: Select all
<?php
// error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE);
 $server = "localhost";
 $user = "xxx";
 $passwort = "xxxxxxxx";
 $datenbank = "urlaub_mitarbeiter_2011";
 $verbindung = mysql_connect($server, $user, $passwort) or die ("Es konnte keine Verbindung hergestellt werden!");
 mysql_select_db($datenbank) or die ("Die Datenbank existiert nicht!");

 
// IP auslesen und in seine Bestandteile zerlegen ;Trennzeichen muss ein Punkt sein
$ip = getenv("REMOTE_ADDR");
$teil_ip= explode(".",$ip);

// IP wird nun wieder zusammengesetzt, jedoch ohne Punkte
$kurz_ip[1] = $teil_ip[0];
$kurz_ip[2] = $teil_ip[1];
$kurz_ip[3] = $teil_ip[2];
$kurz_ip = implode("",$kurz_ip);

if ( $kurz_ip == "1063150" ) $behoerdenname = "AAA";
//PDF Klasse verwenden
include ('class.ezpdf.php');

//Neuse PDF erstellen
$pdf = new Cezpdf('A4', 'landscape');

//Seitenränder und Schriftart
$pdf->ezSetCmMargins(2.5,1.5,2.5,2.5);
$pdf->selectFont('../../../php/extras/pdf-related/Helvetica.afm');

//Überschrift
$pdf->ezStartPageNumbers(230,550,15, '', '<b>Quartalsauswertung </b>');
$pdf->ezStartPageNumbers(430,550,15, '', $behoerdenname);

//Seitennummer
$pdf->ezStartPageNumbers(420,15,8, '', '{PAGENUM} von {TOTALPAGENUM}');

//Datum
$datum = date(j). "." .date(m). "." .date(Y);
$pdf->ezStartPageNumbers(800,550,8, '', $datum);
$pdf->ezText('',10);


// Hier beginnt die Abfrage
      $urlaub = 0;      
      $sonderurlaub = 0;
      $urlaub_7a = 0;
      $krank = 0;
      $kind_krank = 0;
      $kind_krank_halb = 0;
      $dienstreise = 0;
      $fortbildung = 0;
      $karenztag = 0;
      $gleittag = 0;
      $ausgleichstag = 0;
      $mutterschutz =0;
      $kur = 0;
      $beurlaubung = 0;
      $dienstbefreiung = 0;
      $elternzeit = 0;
      $besch_verbot = 0;
      $unbezahlter_urlaub = 0;





/* Mitarbeiter der Behörde suchen */


$suche = mysql_query("SELECT * FROM mitarbeiter where behoerde = '$behoerdenname' order by verguetung");
$i = 0;
while($row = mysql_fetch_array($suche))
   {
   $name = $row["name"];
   $vorname = $row["vorname"];
   

      $urlaub = 0;      
      $sonderurlaub = 0;
      $urlaub_7a = 0;
      $krank = 0;
      $kind_krank = 0;
      $kind_krank_halb = 0;
      $dienstreise = 0;
      $fortbildung = 0;
      $karenztag = 0;
      $gleittag = 0;
      $ausgleichstag = 0;
      $mutterschutz =0;
      $kur = 0;
      $beurlaubung = 0;
      $dienstbefreiung = 0;
      $elternzeit = 0;
      $besch_verbot = 0;
      $unbezahlter_urlaub = 0;


/****************************************
 * monatstabellen von 01 bis 31 auslesen   
 ****************************************/
    
 $result = mysql_query("SHOW TABLES FROM urlaub_juli_2011");
 while ($row = mysql_fetch_row($result))
 
       {
      mysql_select_db(urlaub_juli_2011);
      // sucht in der Datenbank des gewählten Monats in den Tagestabellen nach allen Angaben
      // für die Mitarbeiter, wenn Übereinstimmung zwischen der Behörde und dem Namen besteht
      // $row[0] ist die Tagestabelle in der Datenbank
      
      $abfrage = mysql_query("SELECT * FROM `$row[0]` WHERE name = '$name' and vorname ='$vorname'"); 
      
      while($row = mysql_fetch_array($abfrage))
         {
         $antrag = $row["antragsart"];
               
         if ($antrag == "Urlaub") $urlaub = $urlaub + 1;
         if ($antrag == "Sonderurlaub") $sonderurlaub = $sonderurlaub +1;
         if ($antrag == "Urlaub nach 7a") $urlaub_7a = $urlaub_7a +1;
         if ($antrag == "Krank") $krank = $krank +1;
         if ($antrag == "Kind krank") $kind_krank = $kind_krank +1;
         if ($antrag == "Kind krank 1/2 Tag") $kind_krank_halb = $kind_krank_halb +1;
         if ($antrag == "Dienstreise") $dienstreise = $dienstreise +1;
         if ($antrag == "Fortbildung") $fortbildung = $fortbildung +1;
         if ($antrag == "Karenztag") $karenztag = $karenztag +1;
         if ($antrag == "Gleittag") $gleittag = $gleittag +1;
         if ($antrag == "Ausgleichstag") $ausgleichstag = $ausgleichstag +1;
         if ($antrag == "Mutterschutz") $mutterschutz = $mutterschutz +1;
         if ($antrag == "Kur") $kur = $kur +1;
         if ($antrag == "Beurlaubung") $Beurlaubung = $beurlaubung +1;
         if ($antrag == "Dienstbefreiung") $dienstbefreiung = $dienstbefreiung +1;
         if ($antrag == "Elternzeit") $elternzeit = $elternzeit +1;
         if ($antrag == "unbezahlter Urlaub") $unbezahlter_uralub = $unbezahlter_urlaub +1;
         if ($antrag == "Beschäftigungsverbot wegen Mutterschutz") $besch_verbot = $besch_verbot +1;
         }
      }
      
$result = mysql_query("SHOW TABLES FROM urlaub_august_2011");
 while ($row = mysql_fetch_row($result))
 
       {
   
      mysql_select_db(urlaub_august_2011);
      // sucht in der Datenbank des gewählten Monats in den Tagestabellen nach allen Angaben
      // für die Mitarbeiter, wenn Übereinstimmung zwischen der Behörde und dem Namen besteht
      // $row[0] ist die Tagestabelle in der Datenbank
      
      $abfrage = mysql_query("SELECT * FROM `$row[0]` WHERE name = '$name' and vorname ='$vorname'"); 
   
   
      while($row = mysql_fetch_array($abfrage))
         {
         $antrag = $row["antragsart"];
         
      
         if ($antrag == "Urlaub") $urlaub = $urlaub + 1;
         if ($antrag == "Sonderurlaub") $sonderurlaub = $sonderurlaub +1;
         if ($antrag == "Urlaub nach 7a") $urlaub_7a = $urlaub_7a +1;
         if ($antrag == "Krank") $krank = $krank +1;
         if ($antrag == "Kind krank") $kind_krank = $kind_krank +1;
         if ($antrag == "Kind krank 1/2 Tag") $kind_krank_halb = $kind_krank_halb +1;
         if ($antrag == "Dienstreise") $dienstreise = $dienstreise +1;
         if ($antrag == "Fortbildung") $fortbildung = $fortbildung +1;
         if ($antrag == "Karenztag") $karenztag = $karenztag +1;
         if ($antrag == "Gleittag") $gleittag = $gleittag +1;
         if ($antrag == "Ausgleichstag") $ausgleichstag = $ausgleichstag +1;
         if ($antrag == "Mutterschutz") $mutterschutz = $mutterschutz +1;
         if ($antrag == "Kur") $kur = $kur +1;
         if ($antrag == "Beurlaubung") $Beurlaubung = $beurlaubung +1;
         if ($antrag == "Dienstbefreiung") $dienstbefreiung = $dienstbefreiung +1;
         if ($antrag == "Elternzeit") $elternzeit = $elternzeit +1;
         if ($antrag == "unbezahlter Urlaub") $unbezahlter_uralub = $unbezahlter_urlaub +1;
         if ($antrag == "Beschäftigungsverbot wegen Mutterschutz") $besch_verbot = $besch_verbot +1;

         
         }
         
      }      
      
$result = mysql_query("SHOW TABLES FROM urlaub_september_2011");
 while ($row = mysql_fetch_row($result))
 
       {
   
      mysql_select_db(urlaub_september_2011);
      // sucht in der Datenbank des gewählten Monats in den Tagestabellen nach allen Angaben
      // für die Mitarbeiter, wenn Übereinstimmung zwischen der Behörde und dem Namen besteht
      // $row[0] ist die Tagestabelle in der Datenbank
      
      $abfrage = mysql_query("SELECT * FROM `$row[0]` WHERE name = '$name' and vorname ='$vorname'"); 
   
   
      while($row = mysql_fetch_array($abfrage))
         {
         $antrag = $row["antragsart"];
         
      
         if ($antrag == "Urlaub") $urlaub = $urlaub + 1;
         if ($antrag == "Sonderurlaub") $sonderurlaub = $sonderurlaub +1;
         if ($antrag == "Urlaub nach 7a") $urlaub_7a = $urlaub_7a +1;
         if ($antrag == "Krank") $krank = $krank +1;
         if ($antrag == "Kind krank") $kind_krank = $kind_krank +1;
         if ($antrag == "Kind krank 1/2 Tag") $kind_krank_halb = $kind_krank_halb +1;
         if ($antrag == "Dienstreise") $dienstreise = $dienstreise +1;
         if ($antrag == "Fortbildung") $fortbildung = $fortbildung +1;
         if ($antrag == "Karenztag") $karenztag = $karenztag +1;
         if ($antrag == "Gleittag") $gleittag = $gleittag +1;
         if ($antrag == "Ausgleichstag") $ausgleichstag = $ausgleichstag +1;
         if ($antrag == "Mutterschutz") $mutterschutz = $mutterschutz +1;
         if ($antrag == "Kur") $kur = $kur +1;
         if ($antrag == "Beurlaubung") $Beurlaubung = $beurlaubung +1;
         if ($antrag == "Dienstbefreiung") $dienstbefreiung = $dienstbefreiung +1;
         if ($antrag == "Elternzeit") $elternzeit = $elternzeit +1;
         if ($antrag == "unbezahlter Urlaub") $unbezahlter_uralub = $unbezahlter_urlaub +1;
         if ($antrag == "Beschäftigungsverbot wegen Mutterschutz") $besch_verbot = $besch_verbot +1;


         }
      }

   

$ergebnis[$i]=array(
   'Vorname'=>$vorname,
   'Name'=>$name,
   'Krank'=>$krank,
   'Kind krank'=>$kind_krank,
   'Kind krank 1/2 Tag'=>$kind_krank_halb,
   'Fortbildung'=>$fortbildung,
   'Karenz'=>$karenztag,
   'Mutterschutz'=>$mutterschutz,
   'Beschäftigungsverbot'=>$besch_verbot,
   'Elternzeit'=>$elternzeit,
   'Kur'=>$kur,
   'Beurlaubung'=>$beurlaubung,
   'unbezahlter Urlaub'=>$unbezahlter_urlaub,
   'Dienstbefreiung'=>$dienstbefreiung,
   'Sonderurlaub'=>$sonderurlaub);   

$i++;   
}


 $pdf->ezTable($ergebnis,'','',array('shaded'=>4,'width'=>800));


      $text_options=array(left=>150,right=>150,justification=>'center');
      $pdf->ezText("",12);

      $pdf->ezText("Mitarbeiter gesamt: $i ",12, $text_options );
      $pdf->ezText("");

//      $pdf->ezText("2011", 10, $text_options);


$pdf->ezStream();
?>



Die Funktion $pdf->ezTable.... liefert keine Ergebnisse. Es wird die Tabelle mit 15 Spalten dargestellt, jedoch leer!

Wer kann mir helfen???

Gruß Steffen
steffen0366
 
Posts: 8
Joined: 10. April 2006 19:10
Location: klockenhagen

Re: Mittels php-script PDF-Dokumente generieren

Postby WilliL » 15. December 2011 14:24

was war denn vorher für eine XAMPP Version drauf? welches Betriebssystem?

als erstes würde ich mir ALLE Fehler anzeigen lassen, und denen dann nachgehen.
(z.B. was hat siche in php, mysql geändert zur vorherigen version, gibt es eine angepaste class.ezpdf.php oder kann die hier nicht genutzt werden..)
Willi
WilliL
 
Posts: 660
Joined: 08. January 2010 10:54
Operating System: Win7Home Prem 64 SP1

Re: Mittels php-script PDF-Dokumente generieren

Postby steffen0366 » 16. December 2011 22:14

Hallo zusammen,

habe das Problem (Fehler) gefunden. Da ich die Versin 1.7.7 neu installiert habe (kein Update von 1.7.4 !) stimmen mit einmal Pfadangaben nicht mehr. Unter 1.7.4 gab es einen Pfad nach php/extras/pdf-related/Helvetica.afm

Das Verzeichnis pdf-related ist nicht mehr da. Die Schriftart befindet sich jetzt in einem anderen Pfad.

Habe das script auf den neuen Pfad angepasst und alles läuft wieder.


Steffen
steffen0366
 
Posts: 8
Joined: 10. April 2006 19:10
Location: klockenhagen

Re: Mittels php-script PDF-Dokumente generieren

Postby Altrea » 17. December 2011 01:23

Hallo Steffen,

Freut mich, dass du das Problem noch lösen konntest.
Vielleicht wird das für jemand anders mit demselben Problem nochmal hilfreich sein.

Ich markiere den Beitrag als gelöst und wünsche dir noch viel Spaß mit XAMPP und all dem Zeug 8)
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 27 guests