• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

rui_fernandes

ARRAY's - adicionar registos no array

8 mensagens neste tópico

boas,

estou a gerar relatórios dinâmicos de registos MySql para um PDF através do PHP.

Até qui tudo bem,mas eu quero fazer um tratamento da informação que vem das tabelas, e o que estou a tentar fazer é ler da Base de Dados e por tudo num array tudo direitinho para depois ser criado o PDF.

Mas estou com dificuldades em criar o array...

corro os registos da base de dados com um WHILE, e dentro dele faco o tratamento da informação e queria adicionar ao array cada registo...

inicio o array assim ->  $dataz=array('ID'=>'$id','OPERAÇÃO'=>'$operacao','DATA'=>'$data','HORA'=>'$hora','VALOR'=>'$valor');

e dentro do WHILE adiciono assim  ->  array_push($dataz,'ID'=>'$id','OPERAÇÃO'=>'$operacao','DATA'=>'$data','HORA'=>'$hora','VALOR'=>'$valor');

mas não funciona..

alguma sugestão?

obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

dentro do while faz assim

$data[] = array('ID'=>'$id','OPERAÇÃO'=>'$operacao','DATA'=>'$data','HORA'=>'$hora','VALOR'=>'$valor');

Por exemplo

<?php
$data = array();
$k = 4;
while ($k--) {
  $data[] = array($k, 1, 2, 3, 4);
}
print_r($data);
?>

Tem como output

Array
(
    [0] => Array
        (
            [0] => 3
            [1] => 1
            [2] => 2
            [3] => 3
            [4] => 4
        )

    [1] => Array
        (
            [0] => 2
            [1] => 1
            [2] => 2
            [3] => 3
            [4] => 4
        )

    [2] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
            [3] => 3
            [4] => 4
        )

    [3] => Array
        (
            [0] => 0
            [1] => 1
            [2] => 2
            [3] => 3
            [4] => 4
        )

)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado amigo pmg...

mas eu ja tenho um array preenchido desta forma...nao volta o melhor é percurre-lo e tratar o que quero...


$query =$sql="select id,operacao,valor from transacoes WHERE (valor>0);";
//--------------------------------------------------
$link=mysql_connect($servidor,$user,$pass);

mysql_select_db($basedados);

$data = array();

$result = mysql_query($query);

while($data[] =  mysql_fetch_array($result, MYSQL_ASSOC)) {}

talves fosse melhor fazer ali o tratamentoo da informacao nao??

para fazer isso basta por exemplo

if ($data[id]==1){

  $data[id]=tratamento;

}

mas tem de ter um apontador para o registo certo?ou com o while nao deve ser necessario...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi ...

Mas sim, quanto mais cedo tratares a informação melhor.

Se, em vez de tratares a informação quando a vais buscar à base de dados a tratares quando a metes lá, melhor ainda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

$query =$sql="select id,operacao,valor from transacoes WHERE (valor>0);";
//--------------------------------------------------
$link=mysql_connect($servidor,$user,$pass); 
mysql_select_db($basedados);
$data = array();
$result = mysql_query($query); 
while($data[] =  mysql_fetch_array($result, MYSQL_ASSOC)) {}

agora tenho o array preenchido com esse bloco de codigo, como percorro cada registo e cada campo dele agora?

peco desculpa se nao me fiz perceber  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque é que não tratas a informação da base de dados dentro do while?

$query =$sql="select id,operacao,valor from transacoes WHERE (valor>0);";
//--------------------------------------------------
$link=mysql_connect($servidor,$user,$pass); 
mysql_select_db($basedados);
#### $data = array();
$result = mysql_query($query);
#### Usa $data em vez de $data[]
while($data =  mysql_fetch_array($result, MYSQL_ASSOC)) {
  /* Trata a informação AQUI */
  /* Por exemplo */
  if ($data['operacao'] != '') $total += $data['valor'];
}
mysql_free_result($result);

0

Partilhar esta mensagem


Link 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