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 ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign 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 für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 12.08.2007, 01:07:42
hoagie007 hoagie007 ist offline
Anfänger
 
Registriert seit: May 2007
Alter: 48
Beiträge: 12
hoagie007 eine Nachricht über Yahoo! schicken
Trotz Daten keine Ausgabe - ich werd' noch wahnsinnig...

Hallo Forum,
nachdem ich jetzt seit einiger Zeit erfolgreich mit PHP arbeite bin ich heute an eine Grenze gestossen und komme nicht mehr weiter. Vielleicht muss mir auch einfach nur jemand die Augen öffnen, aber ich finde den Fehler nicht.

Das Problem stellt sich wie folgt dar:
Ich programmiere derzeit eine MySQL/PHP-basierte "Webapplikation" für eine Firma mit 20 Aussendienstmitarbeitern. Diesen Mitarbeitern wird jeden Tag eine eMail mit der Einsatzplanung für den nächsten Tag zugesandt. Die Einsätze etc. werden den Mitarbeitern automatisch (oder auch manuell) durch die Software zugewiesen und die Einsatzpläne im PDF-Format mittels FPDF erstellt.
Da die Einsatzpläne aber vor dem Versand noch kontrolliert werden müssen lasse ich sie im Browser anzeigen. Die Einsatzpläne stimmen, die Daten stimmen. So weit so gut.

Es wird aber IMMER eine PDF-Seite WENIGER angezeigt (und auch versandt) als Mitarbeiter mit Einsätzen vorhanden sind. Ich habe sämtliche Schleifen kontrolliert, eine MsgBox-Funktion eingebaut um mir die Daten zur Laufzeit anzeigen zu lassen, die Daten sind korrekt (es werden ALLE Mitarbeiter abgearbeitet, wenn 5 Mitarbeiter Einsätze haben poppt die MsgBox 5x auf -> OK), das PDF ist aber IMMER um eine Seite zu kurz, das heisst er hängt die letzte Seite nicht an, obwohl korrekt in die Schleife verzweigt wird. Ich finde den Fehler trotz intensiven Suchens nicht.
Vielleicht einer von euch ?

PHP-Code:
<?php
session_start
();
if (!isset(
$_SESSION['validated'])) {
    
header('Location: index.php');
    exit;
    }
    else
    {
    require 
"configure.php";
    require 
"language/".$cfg_language.".php";
    require 
"functions.php";
    
define('FPDF_FONTPATH''font/');
    require(
"fpdf.php");
 
    
$sql=mysql_connect($dbhost,$dbuser,$dbpass) or die ("MySQL-Fehler - Verbindung zur Datenbank fehlgeschlagen!");
    
mysql_select_db($dbname) or die ("MySQL-Fehler: Datenbank nicht gefunden!");
    
    
$dateinput=$_GET['datum'];
    
$month         substr($dateinput,2);
    
$day         substr($dateinput62);
    
$year        substr($dateinput,4);
    
$datenow    = (string) $day.'.'.$month.'.'.$year;
    
$result mysql_query("SELECT MitarbeiterID, MitarbeiterName,Telefon FROM tbl_mitarbeiter");
    if (!
$result
        {
        echo 
'<p>Fehler bei der Auftragsauflistung.</p>';
        exit();
        } 
        else 
        {
        
$num_rows=mysql_num_rows($result);
        
$pdf = new FPDF;
        for (
$i=0$i<$num_rows$i++) 
            {
            
$row=mysql_fetch_array($result);
            
$mitarb=$row['MitarbeiterID'];
            
$mitarbname=$row['MitarbeiterName'];
            
$mitarbtelefon=$row['Telefon'];
            
$orderquery="SELECT tbl_auftraege_aktiv.SMS_VerifikationsNr,tbl_auftraege_aktiv.TAL,tbl_auftraege_aktiv.Datum, tbl_auftraege_aktiv.Kundennummer, tbl_auftraege_aktiv.auftragsklasse, tbl_auftraege_aktiv.FKTO_Nr, tbl_mitarbeiter.MitarbeiterName, tbl_auftragsklassen.AK_ID, tbl_auftragsklassen.AK_Bez FROM tbl_auftraege_aktiv INNER JOIN tbl_mitarbeiter ON tbl_auftraege_aktiv.Techniker_ID = tbl_mitarbeiter.MitarbeiterID INNER JOIN tbl_auftragsklassen ON tbl_auftraege_aktiv.auftragsklasse = tbl_auftragsklassen.AK_ID  WHERE tbl_mitarbeiter.MitarbeiterID='$mitarb' AND tbl_auftraege_aktiv.Datum='$datenow'";
            
$result2 mysql_query($orderquery);
            
$num_rows2=mysql_num_rows($result2);

            if (
$num_rows2>0)
                {
            
//    MsgBox($num_rows2);

                
                // Neue Seite anlegen, Querformat, Überschrift und Monteurdaten ausgeben
                
$pdf->AddPage('L');
                
$pdf->SetAutoPageBreak(false); 
                
$pdf->SetFont('Courier','B','14');
                
$pdf->SetXY(5,0);
                
$pdf->Cell(280,10,'Einsatzplanung');
                
$pdf->SetFontSize('10');
                
$pdf->SetXY(5,10);
                
$pdf->Cell(280,10,'Aufträge vom: '.$datenow.' / Monteur: '.$mitarbname.' / Ausführende Firma: XXXXXXXXXXX / Rufnummer: '.$mitarbtelefon);
                
$pdf->SetXY(5,20);
                
$pdf->SetFont('Courier','','7');
                
                
// aktuelle Position auslesen
                
$nullx=$pdf->GetX();
                
$nully=$pdf->GetY();
                
                
// Formular-Header aufbauen
                
$string='CD Auftragsnr.';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell($n+2,10,$string,1,0,'C');
                
$w1=$n+2;
                
                
$string='lauf. Nr.';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell($n+2,10,$string,1,0,'C');
                
$w2=$n+2;
                
                
$nullx2=$pdf->GetX();
                
$nully2=$pdf->GetY();
                
$string='950 Z/W';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->MultiCell(($n/2)+2,5,$string,1,0,'C');
                
$w3=($n/2)+2;
                
$pdf->SetXY($nullx2+$w3,$nully2);
                
                
$string='96E Z/W';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->MultiCell(($n/2)+2,5,$string,1,0,'C');
                
$w4=($n/2)+2;
                
$pdf->SetXY($nullx2+$w3+$w4,$nully2);
                
                
$string='DSL Z/W';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->MultiCell(($n/2)+2,5,$string,1,0,'C');
                
$w5=($n/2)+2;
                
$pdf->SetXY($nullx2+$w3+$w4+$w5,$nully2);
                
                
$string='Ortsnetz';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell($n+2,10,$string,1,0,'C');
                
$w6=$n+2;
                
                
$string='Kundennummer';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell($n+10,10,$string,1,0,'C');
                
$w7=$n+10;
                
                
$string='Rufnummer';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell($n+10,10,$string,1,0,'C');
                
$w8=$n+10;
                
                
$string='Anzahl';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell($n+2,10,$string,1,0,'C');
                
$w9=$n+2;
                
$curx=$pdf->GetX();
                
$cury=$pdf->GetY();
                
                
$string='Schalten';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell(21,5,$string,1,0,'C');
                
$w10=21;
                
$w101=7;
                
$w102=7;
                
$w103=7;
                
$pdf->SetXY($curx,$cury+5);
                
                
$string='AA';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell(7,5,$string,1,0,'C');
                
                
$string='HVT';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell(7,5,$string,1,0,'C');
                
                
$string='KVZ';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell(7,5,$string,1,0,'C');
                
$pdf->SetXY($curx+21,$cury);
                
                
$string='Endltg.';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell($n+2,10,$string,1,0,'C');
                
$w11=$n+2;
                
                
$string='SMN';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell($n+2,10,$string,1,0,'C');
                
$w12=$n+2;
                
$curx=$pdf->GetX();
                
$cury=$pdf->GetY();
                
                
$string='erledigt';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell(16,5,$string,1,0,'C');
                
$w13=16;
                
$w131=8;
                
$w132=8;
                
$pdf->SetXY($curx,$cury+5);
                
                
$string='ja';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell(8,5,$string,1,0,'C');
                
                
$string='nein';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell(8,5,$string,1,0,'C');
                
$pdf->SetXY($curx+16,$cury);
                
                
$string='Zeit X:XX';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell($n+2,10,$string,1,0,'C');
                
$w14=$n+2;
                
                
$string='Bemerkungen: Karte, Fehler, Unterbrechung, usw.';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell($n+2,10,$string,1,0,'C');
                
$w15=$n+2;
                
                
$string='TAL';
                
$n $pdf->GetStringWidth($string); 
                
$pdf->Cell($n+2,10,$string,1,0,'C');
                
$w16=$n+2;
                
                
$rownumber=0;
                
                
// Auftragszeilen ausgeben
                 
for ($i=0$i<$num_rows2$i++) {
                    
$row2=mysql_fetch_array($result2);
                    
$rownumber++;
                    
$string=$row2['SMS_VerifikationsNr'];
                    
$pdf->SetXY($nullx,$nully+10+(($rownumber-1)*5));
                    
$cury=$pdf->GetY();
                    
                    
// Wenn Blatt voll neues Blatt anlegen
                    
if ($cury+5>160) {
                        
$pdf->AddPage('L');
                        
$nullx=5;
                        
$nully=5;
                        
$rownumber=0;
                        
$pdf->SetXY($nullx,$nully);
                    }
                    
$pdf->Cell($w1,5,$string,1,0,'R');
                    
$pdf->Cell($w2,5,$i+1,1,0,'C');
                    
$pdf->Cell($w3,5,'',1,0);
                    
$pdf->Cell($w4,5,'',1,0);
                    
$pdf->Cell($w5,5,'',1,0);
                    
$pdf->Cell($w6,5,'',1,0);
                    
$string=$row2['Kundennummer'];
                    
$pdf->Cell($w7,5,$string,1,0,'C');
                    
$string=$row2['FKTO_Nr'];
                    
$pdf->Cell($w8,5,$string,1,0,'C');
                    
$pdf->Cell($w9,5,'',1,0);
                    
$string=$row2['AK_Bez'];
                    
$pdf->Cell($w101,5,$string,1,0,'C');
                    
$pdf->Cell($w102,5,'',1,0);
                    
$pdf->Cell($w103,5,'',1,0);
                    
$pdf->Cell($w11,5,'',1,0);
                    
$pdf->Cell($w12,5,'',1,0);
                    
$pdf->Cell($w131,5,'',1,0);
                    
$pdf->Cell($w132,5,'',1,0);
                    
$pdf->Cell($w14,5,'',1,0);
                    
$pdf->Cell($w15,5,'',1,0);
                    
$string=$row2['TAL'];
                    if (
$string=="1")
                        {
                        
$pdf->Cell($w16,5,'X',1,0,'C');
                        }
                        else
                        {
                        
$pdf->Cell($w16,5,'O',1,0,'C');                    
                    }
                }
                
$string="AA=Auftragsart (ML,MS,ME,MH,SE, usw.)\nHVT, KVZ bitte Stückzahl der erforderlichen Schaltungen (Anzahl der Schaltdrähte, neue und entfernte) eintragen.\nBei Endleitungen bitte Meterzahl und Schaltungen (WD, TAE) angeben (Stück).\nZeit: Bei TEL-As 950 bitte Gesamtzeit, bei 96E bitte alles in Service- und Montagenachweis SMN (extra Blatt) eintragen.\nZeit: Bitte in Stunden und Minuten angeben statt 0,75Std.\nBei MH-Auftrag DSL: Zugang mit 'Z' und Wegfall mit 'W' eintragen.";
                
$cury2=$pdf->GetY();
                
$pdf->SetXY(5,$cury2+10);
                
$pdf->MultiCell(250,3,$string,0,'L',0);    
            }
        }
    }
    
$pdf->Output();
    
mysql_close();
}
?>
Ich bin immer bemüht meinen Code gut zu strukturieren, ich hoffe ihr könnt damit was anfangen.

Mit verzweifelten Grüßen,
Jan
Mit Zitat antworten
  #2  
Alt 12.08.2007, 01:21:41
hoagie007 hoagie007 ist offline
Anfänger
 
Registriert seit: May 2007
Alter: 48
Beiträge: 12
hoagie007 eine Nachricht über Yahoo! schicken
AW: Trotz Daten keine Ausgabe - ich werd' noch wahnsinnig...

Hallo Leute!

ICH DEPP!
(das musste mal gesagt werden)

Wenn man den gleichen Variablennamen $i in zwei verschiedenen Schleifen verwendet kann es ja nur Probleme geben.

Danke für eure telepatische Hilfe ;-)

Mit hocherfreuten Grüßen,
Jan
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
Ausgabe von Daten aus SQL dinki70210 PHP für Fortgeschrittene und Experten 8 01.03.2006 20:22:56
SQL-Abfrage mit sum() AS und Ausgabe aller Daten nivram MySQLi/PDO/(MySQL) 20 15.02.2005 18:14:15
sortierte ausgabe joker PHP Grundlagen 5 17.12.2004 19:58:27
Browserrefresh schreibt Daten trotz session_destroy() Cooper PHP für Fortgeschrittene und Experten 6 29.08.2004 16:35:08
Problem mit Ausgabe von Daten in For- Schleife Sajya PHP für Fortgeschrittene und Experten 4 10.11.2002 14:25:24


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:54:33 Uhr.


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


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