PHP Fatal error: Cannot break/continue 1 level

05/02/2014 - 01:38 von Stefan Hundler | Report spam
Moin!

Ich hab hier ein lauffàhiges PHP was mittels FPDF auch schön Dateien
rauswirft. Nur leider gibt es im PHP-Log o.g. Fehlermeldung.

Aus wenn's làuft, würde ich es gerne trotzdem verstehen und korrigieren.

Script habe ich unten mal angehàngt.

Wenn ich in der vorletzten Zeile

continue oder break verwende geht alles.


Ersetze ich dies mit return, return false oder anderem, kommt gleich ein
Fehler im Browser oder es wird einfach keine Datei ausgegeben.

Ok, ich brauche eine if, for, while etc

Ich stehe aber ehrlich auf dem Schlauch wo und wozu die Schleife hin soll.
Oder alternativ, wie ich ohne break eine Dateiausgabe erreichen kann.

CU Stefan




<?php

require ('layout.incl');

setlocale (LC_ALL,"de_DE");

setlocale (LC_NUMERIC,"de_DE");

$db =& JFactory::getDBO();

$db=FabrikWorker::getDbo(false, 3);

$kunden = "kunden";

$user =& JFactory::getUser();

$ids = JRequest::getVar('ids', array());

$heute = date("Ymd");

foreach ($ids as $id) {

$pdf->AddPage();

$pdf->SetFont('Arial','',14);

$pdf->SetDisplayMode('real');

$pdf->SetAuthor('author');

$pdf->SetTitle('Titel');

$pdf->SetSubject('rechnung - am: ' . date("d.m.Y - H:i") . " Uhr");

$sql = "SELECT * FROM $kunden WHERE id = $id";

$db->setQuery($sql);

$kunde = $db->LoadAssoc();

$anrede = $kunde['MAnrede'];

$vorname = utf8_decode($kunde['MVorname']);

$name = utf8_decode($kunde['MVorname'])." ".utf8_decode($kunde['MName']);

$strasse = utf8_decode($kunde['MStrasse']);

$ort = $kunde['MPlz']." ".utf8_decode($kunde['MOrt']);

$Mnummer = $kunde['kundeNr'];

$status = $kunde['kundesstatus'];

$tmp = explode(" ",$kunde['versicherung']);

$verband = $tmp[0];

$anschrift array("$anrede","$name","$strasse","$ort","$Mnummer","$status");

if ($verband ) {

$anschrift[] = $verband;

} #push $array -> $var



$sql = "SELECT Name, Betrag, RNr, year(date_time) as year,
date_format(date_time,'%d.%m.%Y') as date, date_format(date_add(date(now()),
INTERVAL 21 day),'%d.%m.%Y') as zahlungsziel FROM rechnungen WHERE id_kunde
= $id and Status in (0,3) order by Name";

$db->setQuery($sql);

$rpos = $db->LoadRowList();

$_rpos = $db->LoadAssoc();

adresse($pdf,$anschrift);

$betreff = "rechnung ".$_rpos['RNr']." vom ".$_rpos['date'];

betreff($pdf,"$betreff");

$pdf->SetFont('Arial','',10);

$pdf->SetXY(25,108);

if ( $kunde['Austritt'] == "0000" ) {

$pdf->MultiCell(0,4, "Hallo
".utf8_decode($kunde['MVorname']).",text:",0,1);

} else {

$pdf->MultiCell(0,4, "Hallo
".utf8_decode($kunde['MVorname']).utf8_decode(",text"),0,1);

}

$pdf->ln();

$pdf->SetXY(25,250);

$pdf->SetFont('Arial','',10);

$pdf->MultiCell(0,4, "text ".date("d").".".date("m").".".date("Y"));

}

$pdf->Output( date("Y.m.d_Hi") . ' - Rechnung.pdf','I');

continue;

?>
 

Lesen sie die antworten

#1 Markus Kottenhahn
05/02/2014 - 01:56 | Warnen spam
Am 05.02.2014 01:38, schrieb Stefan Hundler:
Ok, ich brauche eine if, for, while etc

Ich stehe aber ehrlich auf dem Schlauch wo und wozu die Schleife hin soll.
Oder alternativ, wie ich ohne break eine Dateiausgabe erreichen kann.



http://de.php.net/manual/de/control...ntinue.php

"continue wird innerhalb von Schleifen verwendet, um den Rest des
aktuellen Schleifendurchlaufs abzubrechen und mit der Auswertung der
nàchsten Bedingung fortzufahren, um dann den nàchsten Durchlauf zu
beginnen."

Mit anderen Worten: Am Ende deines Skripts macht das continue genau gar
keinen Sinn, eben weil keine Schleifenstruktur vorhanden ist, in die es
zurückspringen kann. Und wenn ich das Skript richtig interpretiere, ist
auch gar keine Schleife mehr nötig. Schmeiß es einfach raus.

Ähnliche fragen