Foreach, fejlmeddelelse

Tags:    php foreach

Jeg får fejl i min foreach løkke når der kun er 1 post, ellers virker den perfekt.
Hvad skyldes dette?
Fold kodeboks ind/udPHP kode 





7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Det betyder to ting...

1) at du mangler data fra din database der er kædet sammen med den data du bruger i $debtorHandles.
2) at du bruger de forkerte værdier i $num til at kontrollere der er data til din foreach.


$num burde være count($debtorDataObjects) - eller bare if(empty($debtorDataObjects))

Du må tjekke om du får det forventede i $debtorHandles og at du har det tilhørende data som du forventer, der tildeles $debtorDataObjects.



Du må vise mere kode og fejlmeddelse...

Der er ikke nogen der stjæler din kode...



Tak for din interesse :-)
Fejlmeddelelse: Warning: Invalid argument supplied for foreach() in /XXX.php on line 56

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 24.09.2015 22:50 af Bruger #16819
Tjek hvad du har af data i $debtorDataObjects ved det scenarie hvor det virker, og ved det scenarie hvor den giver fejl.

Det kan f.eks. gøres med print_r();

Tvivler på at nedestående altid returnerer data i samme format ( i eksempel er det linje 4) .
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 24.09.2015 23:06 af Bruger #10216
ved 2 poster eller mere kommer der output med print_r()
ved kun 1 post kommer der ikke output med print_r(), men min $num tæller 1 post
Er nu lidt mere lost end hvad godt er :-/





Invalid argument i foreach kunne vel være fordi det ikke er en array?
Kunne godt forestille mig du ikke fik en array returnet når der kun er 1 resultat.

Prøv at cast $debtorDataObjects som en array
Fold kodeboks ind/udPHP kode 




Mange mange tak for hjælpen til fejlfindingen med print_r, fandt ud af
at min:
$debtorDataObjects = $client->Debtor_GetDataArray(array('entityHandles' => $debtorHandles))->Debtor_GetDataArrayResult->DebtorData;

kun kan håndtere minimum 2 poster, så ved en enkelt post skulle den ændres til:
$debtorDataObjects = $client->Debtor_GetData(array('entityHandle' => $debtorHandles))->Debtor_GetDataResult;

:)




Indlæg senest redigeret d. 26.09.2015 15:58 af Bruger #16819
t