Autor Tópico: [Resolvido] Array formatação de saída  (Lida 428 vezes)

Celso R.

  • Expert
  • *****
  • Mensagens: 941
[Resolvido] Array formatação de saída
« Online: Julho 13, 2016, 09:05:10 am »
Bom dia pessoal.
Preciso criar um array nesse formato:
Código: [Selecionar]
$contas = array(
array('ctid'=>1    , 'ctnome' =>' DESPESAS'                 , 'ctparent'=>null),
array('ctid'=>2    , 'ctnome' =>' Despesas administrativas' , 'ctparent'=>1),
array('ctid'=>3    , 'ctnome' =>' 13 Salario '              , 'ctparent'=> 2),
array('ctid'=>4    , 'ctnome' =>' Adicional noturno '       , 'ctparent'=> 2),
array('ctid'=>5    , 'ctnome' =>' Agua / Esgoto '           , 'ctparent'=> 2),
array('ctid'=>9    , 'ctnome' =>' Multa '                   , 'ctparent'=> 5)

Acontece que não estou conseguindo criar esse array que deve vir do Banco de Dados MYSQL.
No SC tenho o seguinte código:
Código: [Selecionar]
sc_set_fetchmode(0);
sc_select(conta,"SELECT
   ctid,
   ctnome,
   ctparent
FROM
   categoria");

while (!$conta->EOF){

   $conta->MoveNext();
   $contas = $conta->fields['ctid'].':'.$conta->fields['ctnome'].':'.$conta->fields['ctparent'];
   print_r($contas);
   //echo '<pre>';
   //var_dump($contas);
   
}

A saída produzida do código acima é a seguinte:
Código: [Selecionar]
330:CAIXA:329331:Dinheiro:330332:CHEQUE:330333:Cheque a Vista:332334:Cheque pós Datado:332335:CARTÃO:330336

Alguma ideia de como resolvo isso?

« Última modificação: Julho 14, 2016, 10:32:54 am por Ronyan Alves »
Celso R.
________________________________
SC - V 8

Ronyan Alves

  • Administrator
  • Avançado
  • *****
  • Mensagens: 353
Re:Array formatação de saída
« Responder #1 Online: Julho 13, 2016, 10:31:22 am »
$contas deve ser um array, incrementado após cada MoveNext().
Algo assim:

$contas = array();
$i=0;
while...

$contas[$i] = ...
$i++;
MoveNext()...

--

Ronyan Alves
Equipe Scriptcase

Allan Medeiros

  • Expert
  • *****
  • Mensagens: 504
    • Email
Re:Array formatação de saída
« Responder #2 Online: Julho 13, 2016, 10:57:51 am »
Tenta assim:

Código: [Selecionar]
sc_set_fetchmode(0);
sc_select(conta,"SELECT
   ctid,
   ctnome,
   ctparent
FROM
   categoria");

while (!$conta->EOF){
   $contas[] = array('ctid'=> $conta->fields[0] , 'ctnome' =>$conta->fields[1], 'ctparent'=>$conta->fields[2]);
   $conta->MoveNext();
   //echo '<pre>';
   //var_dump($contas);
   
}
Allan Medeiros
Analista de Informática
__________________________________________
Companhia de Processamento de Dados da Paraíba
medeiros@codata.pb.gov.br

Celso R.

  • Expert
  • *****
  • Mensagens: 941
Re:Array formatação de saída
« Responder #3 Online: Julho 13, 2016, 12:38:54 pm »
Caro Allan deu certo a sua dica.
Código: [Selecionar]

sc_set_fetchmode(0);
sc_select(conta,"SELECT
   ctid,
   ctnome,
   ctparent
FROM
   categoria");


while (!$conta->EOF){
   global $contas;
   $contas []= array('ctid'=> $conta->fields[0] , 'ctnome' =>$conta->fields[1], 'ctparent'=>$conta->fields[2]);
   $conta->MoveNext();
   //echo '<pre>';
   //print_r($planoDeContas);
 
}



Criei essa global $contas para utilizar essa variável fora do While, porém ao resgatar o valor ela vem com o último dado do DB.
Como eu faço para acumular nessa variável?
Celso R.
________________________________
SC - V 8

Allan Medeiros

  • Expert
  • *****
  • Mensagens: 504
    • Email
Re:Array formatação de saída
« Responder #4 Online: Julho 13, 2016, 08:25:38 pm »
Celso,
Cria a variável fora do while. Ex: $contas = array();
Se vc definir a variável dentro do while, a cada iteração ela é zerada.
[]s
Allan Medeiros
Analista de Informática
__________________________________________
Companhia de Processamento de Dados da Paraíba
medeiros@codata.pb.gov.br

Celso R.

  • Expert
  • *****
  • Mensagens: 941
Re:Array formatação de saída
« Responder #5 Online: Julho 13, 2016, 09:05:05 pm »
Muito bom funcionou 100%.
Fica aí a dica.
Obrigado pessoal.
Celso R.
________________________________
SC - V 8