Ir para o conteúdo
NunoDinis

Captar valores do array

Mensagens Recomendadas

NunoDinis

Boa tarde,

Estou a ler os dados de um software (SAP) que provêm do mesmo em forma de array.

O código que estou a utilizar para ler todas as posições é este:

$result = $client->ZrrWsComunicaArquivo($params);
foreach ($result->OutGestArquivo->item as $row) {
  echo $row;
}

Esta é o array que retorna no browser.

stdClass Object
(
[OutGestArquivo] => stdClass Object
(
[item] => stdClass Object
(
[Mandt] => 200
[Artigo] => MP000001
[Descricao] => MATERIAL 1
[GrpMerc] => 7550
[GrpMercDes1] => PENTES
)
)
[PStatus] => 0
)

Porém, quando tenho mais do que um array de registos dá-me este erro:

Warning: Invalid argument supplied for foreach() in G:\xampp\htdocs\ws_app3\get-values\exemploTabela.php on line 114

A linha 114 é foreach, em que OutGestArquivo é a tabela onde vai buscar os registos em SAP.

$result = $client->ZrrWsComunicaArquivo($params);
foreach ($result->OutGestArquivo->item as $row) {
  echo $row;
}

O que poderei estar a fazer errado, visto que para um registo funciona, mas para mais do que um não?

Editado por apocsantos

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

executa este código para saber o que estás a tentar interpretar como um array (para o caso que dá erro claro):

print_r($result->OutGestArquivo->item);

e isso terá de ser um array ... se não for, verifica o que é para se tentar decidir o que fazer


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Para o caso que funciona bem, retorna isto:

stdClass Object ( [Mandt] => 200 [Artigo] => MP000001 [Descricao] => MATERIAL 1 [GrpMerc] => 7550 [GrpMercDes1] => PENTES [GrpMercDes2] => [Peso] => 000 [Peso1] => [HierCode] => [HierN1Code] => [HierN1Des] => [HierN2Code] => [HierN2Des] => [HierN3Code] => [HierN3Des] => [HierN4Code] => [HierN4Des] => [Composicao] => [CompCo] => [Tela] => [CompPl] => [CompPa] => [CompEa] => [CompVi] => [CompCu] => [CompRay] => [CompWo] => [CompLi] => [CompWa] => [CompSe] => [CompPc] => [CompMo] => [CompLy] => [CompCa] => [CompInox] => [CompPva] => [CompAc] => [CompWm] => [CompTe] => [CompRa] => [CompJu] => [CompBamboo] => [TipoTecido] => [PontoBase] => [DesenhoTecido] => [TipoElastic] => [Obs] => [urlImage] => [inactivo] => N [DataCri] => 2012-12-18 [HoraCri] => 14:00:13 [usrCri] => matos [DataAlt] => 0000-00-00 [HoraAlt] => 00:00:00 [usrAlt] => [CompCo1] => [CompPl1] => [CompPa1] => [CompEa1] => [CompVi1] => [CompCu1] => [CompRay1] => [CompWo1] => [CompLi1] => [CompWa1] => [CompSe1] => [CompPc1] => [CompMo1] => [CompLy1] => [CompCa1] => [CompInox1] => [CompPva1] => [CompAc1] => [CompWm1] => [CompTe1] => [CompRa1] => [CompJu1] => [CompBamboo1] => )

Mas para o caso que dá mal eu nem consigo testar, porque diz logo isto:

Warning: Invalid argument supplied for foreach() in G:\xampp\htdocs\ws_app3\get-values\exemploTabela.php on line 114
stdClass Object
(
[OutGestArquivo] => stdClass Object
 (
 )
[PStatus] => 1
)

Eu creio que a fazer uma boa interpretação do problema, caso contrário, nem com um funcionava. Certo é que alguma coisa falta...


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Olá Happy,

Assim já retorna todos os dados.

stdClass Object
(
[OutGestArquivo] => stdClass Object
 (
	 [item] => Array
		 (
			 [0] => stdClass Object
				 (
					 [Mandt] => 200
					 [Artigo] => TC0114
					 [Descricao] => E 215G72373
					 [GrpMerc] => 5015
					 [GrpMercDes1] => TECIDO - GRP COR TP
					 [GrpMercDes2] => TECIDO - GRP COR TINTO PEÇA
					 [Peso] => 225
					 [Peso1] =>
					 [HierCode] => 100120013005400561
					 [HierN1Code] => 1001
					 [HierN1Des] => 100% ALGODÃO
					 [HierN2Code] => 2001
					 [HierN2Des] => LISO
					 [HierN3Code] => 3005
					 [HierN3Des] => ALGODOES PESADOS
					 [HierN4Code] => 400561
					 [HierN4Des] => LIMA
					 [Composicao] => 100% CO
					 [CompCo] => 100,00 %
					 [Tela] => TL0053
					 [CompPl] =>
					 [CompPa] =>
					 [CompEa] =>
					 [CompVi] =>
					 [CompCu] =>
					 [CompRay] =>
					 [CompWo] =>
					 [CompLi] =>
					 [CompWa] =>
					 [CompSe] =>
					 [CompPc] =>
					 [CompMo] =>
					 [CompLy] =>
					 [CompCa] =>
					 [CompInox] =>
					 [CompPva] =>
					 [CompAc] =>
					 [CompWm] =>
					 [CompTe] =>
					 [CompRa] =>
					 [CompJu] =>
					 [CompBamboo] =>
					 [TipoTecido] => CETINS
					 [PontoBase] => CETIM 5
					 [DesenhoTecido] => LISOS
					 [TipoElastic] => SEM ELASTICIDADE
					 [Obs] =>
					 [urlImage] => http://srvsapportal.riopele.pt:50000/irj/go/km/docs/documents/Arquivo/TC0114.jpg
					 [inactivo] => N
					 [DataCri] => 2010-03-24
					 [HoraCri] => 15:10:40
					 [usrCri] => MATOS
					 [DataAlt] => 2010-11-19
					 [HoraAlt] => 17:02:54
					 [usrAlt] => MATOS
					 [CompCo1] =>
					 [CompPl1] =>
					 [CompPa1] =>
					 [CompEa1] =>
					 [CompVi1] =>
					 [CompCu1] =>
					 [CompRay1] =>
					 [CompWo1] =>
					 [CompLi1] =>
					 [CompWa1] =>
					 [CompSe1] =>
					 [CompPc1] =>
					 [CompMo1] =>
					 [CompLy1] =>
					 [CompCa1] =>
					 [CompInox1] =>
					 [CompPva1] =>
					 [CompAc1] =>
					 [CompWm1] =>
					 [CompTe1] =>
					 [CompRa1] =>
					 [CompJu1] =>
					 [CompBamboo1] =>
				 )
			 [1] => stdClass Object
				 (
					 [Mandt] => 200
					 [Artigo] => TC0450
					 [Descricao] => W 0395
					 [GrpMerc] => 5015
					 [GrpMercDes1] => TECIDO - GRP COR TP
					 [GrpMercDes2] => TECIDO - GRP COR TINTO PEÇA
					 [Peso] => 110
					 [Peso1] =>
					 [HierCode] => 100120013004400556
					 [HierN1Code] => 1001
					 [HierN1Des] => 100% ALGODÃO
					 [HierN2Code] => 2001
					 [HierN2Des] => LISO
					 [HierN3Code] => 3004
					 [HierN3Des] => ALGODOES LIGEIROS
					 [HierN4Code] => 400556
					 [HierN4Des] => LIGERO
					 [Composicao] => 100% CO
					 [CompCo] => 100,00 %
					 [Tela] => TL0017
					 [CompPl] =>
					 [CompPa] =>
					 [CompEa] =>
					 [CompVi] =>
					 [CompCu] =>
					 [CompRay] =>
					 [CompWo] =>
					 [CompLi] =>
					 [CompWa] =>
					 [CompSe] =>
					 [CompPc] =>
					 [CompMo] =>
					 [CompLy] =>
					 [CompCa] =>
					 [CompInox] =>
					 [CompPva] =>
					 [CompAc] =>
					 [CompWm] =>
					 [CompTe] =>
					 [CompRa] =>
					 [CompJu] =>
					 [CompBamboo] =>
					 [TipoTecido] => TAFETAS
					 [PontoBase] => TAFETÃ? SIMPLES
					 [DesenhoTecido] => LISOS
					 [TipoElastic] => SEM ELASTICIDADE
					 [Obs] =>
					 [urlImage] => http://srvsapportal.riopele.pt:50000/irj/go/km/docs/documents/Arquivo/TC0450.jpg
					 [inactivo] => N
					 [DataCri] => 2010-03-24
					 [HoraCri] => 15:13:59
					 [usrCri] => MATOS
					 [DataAlt] => 2010-03-24
					 [HoraAlt] => 15:14:02
					 [usrAlt] => MATOS
					 [CompCo1] =>
					 [CompPl1] =>
					 [CompPa1] =>
					 [CompEa1] =>
					 [CompVi1] =>
					 [CompCu1] =>
					 [CompRay1] =>
					 [CompWo1] =>
					 [CompLi1] =>
					 [CompWa1] =>
					 [CompSe1] =>
					 [CompPc1] =>
					 [CompMo1] =>
					 [CompLy1] =>
					 [CompCa1] =>
					 [CompInox1] =>
					 [CompPva1] =>
					 [CompAc1] =>
					 [CompWm1] =>
					 [CompTe1] =>
					 [CompRa1] =>
					 [CompJu1] =>
					 [CompBamboo1] =>
				 )

Pus só dois para veres a forma, são bastantes.

Já dá outro erro. Quando vou a por um valor numa tabela dá este erro:

Catchable fatal error

: Object of class stdClass could not be converted to string in

G:\xampp\htdocs\ws_app3\Teste.php on line

224

Linha 224 - > <td width="10%" class="style1"><?php echo $Artigo; ?></td>

(( $Artigo=$arr[1]; ))

Refiro que a tabela é passada como parametro noutro array.

Posto o código para que possas entender melhor:

$x[] = array('Mandt' => "200",
	 'Artigo' => $_POST['artigo'],
	 'Descricao' => "",
	 'GrpMerc' => "",
	 'GrpMercDes1' => "",
	 'GrpMercDes2' => "",
	 'Peso' => "",
	 'Peso1' => "",
	 'HierCode' => "",
	 'HierN1Code' => "",
	 'HierN1Des' => "",
	 'HierN2Code' => "",
	 'HierN2Des' => "",
	 'HierN3Code' => "",
	 'HierN3Des' => "",
	 'HierN4Code' => "",
	 'HierN4Des' => "",
	 'Composicao' => "",
	 'CompCo' => "",
	 'Tela' => "",
	 'CompPl' => "",
	 'CompPa' => "",
	 'CompEa' => "",
	 'CompVi' => "",
	 'CompCu' => "",
	 'CompRay' => "",
	 'CompWo' => "",
	 'CompLi' => "",
	 'CompWa' => "",
	 'CompSe' => "",
	 'CompPc' => "",
	 'CompMo' => "",
	 'CompLy' => "",
	 'CompCa' => "",
	 'CompInox' => "",
	 'CompPva' => "",
	 'CompAc' => "",
	 'CompWm' => "",
	 'CompTe' => "",
	 'CompRa' => "",
	 'CompJu' => "",
	 'CompBamboo' => "",
	 'TipoTecido' => "",
	 'PontoBase' => "",
	 'DesenhoTecido' => "",
	 'TipoElastic' => "",
	 'Obs' => "",
	 'UrlImage' => "",			
	 'Inactivo' => "",
	 'DataCri' => "",
	 'HoraCri' => "",
	 'UsrCri' => "",
	 'DataAlt' => "",
	 'HoraAlt' => "",
	 'UsrAlt' => "",
	 'CompCo1' => "",
	 'CompPl1' => "",
	 'CompPa1' => "",
	 'CompEa1' => "",
	 'CompVi1' => "",
	 'CompCu1' => "",
	 'CompRay1' => "",
	 'CompWo1' => "",
	 'CompLi1' => "",
	 'CompWa1' => "",
	 'CompSe1' => "",
	 'CompPc1' => "",
	 'CompMo1' => "",
	 'CompLy1' => "",
	 'CompCa1' => "",
	 'CompInox1' => "",
	 'CompPva1' => "",
	 'CompAc1' => "",
	 'CompWm1' => "",
	 'CompTe1' => "",
	 'CompRa1' => "",
	 'CompJu1' => "",
	 'CompBamboo1' => "");
 #Setup input parameters (SAP Likes to Capitalise the parameter names)
 $params = array('OutGestArquivo' => $x,
	 'PAccao' => "C",
	 'PMatnr' => "M",
	 'PObs' => "obs",
	 'PUrlImg' => "nnn",
	 'PUser' => "matos",
	 'PStatus' => ""
	 );

Editado por apocsantos

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Não funciona, ou melhor, funciona quando tenho vários arrays de registos. Quando retorno apenas um não, o que é estranho.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Agora sim, mas na altura em que postei não funcionava era nada..

Quando o fizer, dou feedback, obrigado.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.