Versio

foreach fout

Overzicht Reageren

Orhan T

Orhan T

03/01/2008 20:26:00
Quote Anchor link
Warning: Invalid argument supplied for foreach() in D:\Program Files\xampp\htdocs\mywebshop\factuur.php on line 30
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class PDF extends FPDF
{
    // Gekleurde tabel
    function FancyTable($header,$data,$w)
    {
        // Kleuren, lijn dikte en vet lettertype
        $this->SetFillColor(255,0,0);
        $this->SetTextColor(255);
        $this->SetDrawColor(128,0,0);
        $this->SetLineWidth(.3);
        $this->SetFont('','B');
        //Koptekst
        for($i=0;$i<count($header);$i++)
        {
        $this->Cell($w[$i],7,$header[$i],1,0,'C',1);
        }
        $this->Ln();
        // Herstel van keluren en lettertype
        $this->SetFillColor(224,235,255);
        $this->SetTextColor(0);
        $this->SetFont('');
        // Gegevens
        $fill=0;
        foreach ($data as $row) <--lijn 30
        {
            $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
hier gaat die verder

Ik zie echt niet wat het probleem is en help al zitten zoeken/googlen. Weet iemand wat er fout is?
 
PHP hulp

PHP hulp

24/05/2012 16:42:34
Gesponsorde koppelingen:
 
Martijn B

Martijn B

03/01/2008 20:29:00
Quote Anchor link
De variabele $data is niet van het type array.

Dit kun je op deze manier controleren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if( is_array($data) )
{

   // Woei $data is een array!
}
?>


edit:

Als je PHP5 gebruikt zou je dit kunnen afdwingen in je parameters:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
function FancyTable( $header, array $data, $w )
{
...
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Orhan T

Orhan T

03/01/2008 20:35:00
Quote Anchor link
Bedankt voor je post, alleen wanneer ik array er voor zet krijg ik een fatal error. Is er ook een ander manier om dit te doen? Want ik defineer $data als array pas verder op in de script....

Edit:
dankje het is opgelost door een if constructie met is_array voor de foreach te zetten. Hartelijk bedankt
Gewijzigd op 01/01/1970 01:00:00 door Orhan T
 
Martijn B

Martijn B

03/01/2008 20:37:00
Quote Anchor link
Als $data geen array is wat wil je dan met foreach doen?

Als je er niet zeker van bent dat $data een array is dan moet je dit controleren.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if( is_array($data) )
{

   foreach ($data as $row)
   {

   }
}

?>
 
Orhan T

Orhan T

03/01/2008 20:40:00
Quote Anchor link
@Martijn,

Ik heb het precies zo gedaan. Zie mijn edit. Bedankt voor je hulp :)
 



Overzicht Reageren

Get Adobe Flash player