Jump to content


Photo

While Vai Aumentando A Variavel


  • Faça o login para participar
11 replies to this topic

#1 Lucas de Haro

Lucas de Haro

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino

Posted 17/06/2010, 10:08

Olá, bom dia!

Estou desenvolvendo um sistema administrativo para a empresa que trabalho,
e no cadastro dos clientes quero fazer um log de alteração!
onde ficaria assim, após o final dos dados do cliente:

ALTUALIZADO 12/12/2012 ÀS 15:26 POR USUÁRIO_X.

ALTUALIZADO 06/06/2006 ÀS 12:16 POR USUÁRIO_X.

onde mostre todas as atualizações!
então eu tenho uma tabela de atualizações,
ela tem a estrutura

id
modo - o que foi atualizado (cliente, venda, usuário, porque ai a mesma tabela pode servir para atualização de tudo)
id_modo - o id do cliente/venda/usuario que foi alterado
data - data da atualização
user_a - id do usuário que efetuou a alteração

o código atual, que só mostra a última atualização é este abaixo, o que devo mudar para ir colocando na variavel update os dados do banco:
$db_query = "SELECT * FROM updates WHERE modo = 1 AND id_modo = '$id' ORDER BY id DESC";
$db_run = mysql_query($db_query, $db_conexao);
$db_count = mysql_num_rows($db_run);
if ($db_count >= 1)
{
     while($db_result = mysql_fetch_array($db_run))
     {
           $data = $db_result['data'];
           $user_a = $db_result['user_a'];
           
           $db_query = "SELECT username FROM usuarios WHERE id = '$user_a'"; //Dados que serão executados
           $db_run = mysql_query($db_query, $db_conexao); //Executando a variavel $db_query
           $db_result = mysql_fetch_array($db_run);
           $user = $db_result['username'];
           
           $updates = "Agência atualizada ".$data." por ".$user;
     }
} else {
     $updates = '';
}

Pensei em colocar a $updates em array, porque depois eu contava ela com um count, e imprimia!
mas não consegui! =x

Amplexo

#2 Salsero

Salsero

    Normal

  • Usuários
  • 60 posts
  • Sexo:Masculino
  • Localidade:Salvador
  • Interesses:PHP e Banco de Dados

Posted 18/06/2010, 08:59

desculpas mas ñ entendi direito o que vc quer fazer
Vagner Fonseca
Programador PHP e BD
Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#3 Lucas de Haro

Lucas de Haro

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino

Posted 19/06/2010, 09:47

o código atual só mostra a última atualização, eu quero mostrar todas as alterações que teve!

Amplexo.

#4 rsantos

rsantos

    Turista

  • Usuários
  • 54 posts
  • Sexo:Masculino

Posted 19/06/2010, 22:00

Troque isto:

$updates = "Agência atualizada ".$data." por ".$user;


Por isto:

$updates .= "Agência atualizada ".$data." por ".$user . "<br />;


#5 Lucas de Haro

Lucas de Haro

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino

Posted 06/07/2010, 10:23

Troque isto:

$updates = "Agência atualizada ".$data." por ".$user;

Por isto:
$updates .= "Agência atualizada ".$data." por ".$user . "<br />;

Então, da esse aviso abaixo se fazer assim:
Notice: Undefined variable: updates in C:\wamp\www\eurolink\agencia_edita.php on line 53

dai eu coloquei um
$updates = '';
antes do
$updates .= "<br>Agência atualizada ".data_hora($date)." por ".$user;
o erro sumiu mas continua só aparecendo a última alteração.

Abraços.

#6 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 06/07/2010, 13:39

Você precisa colocar essa inicialização da variável fora do while... por isso está aparecendo somente a última atualização:

if ($db_count >= 1)
{
     $updates = "";

     while($db_result = mysql_fetch_array($db_run))
     {
           $data = $db_result['data'];
           $user_a = $db_result['user_a'];
           
           $db_query = "SELECT username FROM usuarios WHERE id = '$user_a'"; //Dados que serão executados
           $db_run = mysql_query($db_query, $db_conexao); //Executando a variavel $db_query
           $db_result = mysql_fetch_array($db_run);
           $user = $db_result['username'];
           
           $updates .= "Agência atualizada ".$data." por ".$user;
     }
} else {
     $updates = '';
}

(y)
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#7 Lucas de Haro

Lucas de Haro

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino

Posted 06/07/2010, 15:55

O código atual é este:
$updates = ''; //definindo a variavel, para poer adicionar as atualizações nelas depois.

$db_query = "SELECT * FROM updates WHERE modo = 1 AND id_op = '$id'";
$db_run = mysql_query($db_query, $db_conexao);
$db_count = mysql_num_rows($db_run);
if ($db_count >= 1)
{
     while($db_result = mysql_fetch_array($db_run))
     {
           $date = $db_result['date'];
           $user_a = $db_result['user_a'];
           
           $db_query = "SELECT username FROM usuarios WHERE id = '$user_a'"; //Dados que serão executados
           $db_run = mysql_query($db_query, $db_conexao); //Executando a variavel $db_query
           $db_result = mysql_fetch_array($db_run);
           $user = $db_result['username'];
           
           $updates .= "<br>Agência atualizada ".data_hora($date)." por ".$user; //colocando as atualizações.
     }
}

Porém, na hora de imprimir continua aparecendo o último, será que o erro agora é na query mysql?
modo = é onde foi a atualização (1=agencias, 2=usuarios, 3=vendas, e etc.)
id_op = é o id da agencia/usuario/venda que foi alterado!!!

O engraçado é que se eu rodo a query no mysql, aparece os 3 registros que tem para no mysql, e eu fiz um teste dentro do while, coloquei um echo na frase do update, e só imprimiu uma!

Não consegui achar o erro! =x

Amplexo.

#8 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 06/07/2010, 17:29

Bem ...

Então olha só ...

repara na variável $db_run.

Você utiliza ela para encontrar primeiramente os updates... até aí tudo certo...

Quando você entra no while... você faz outra consulta para para encontrar o usuário certo?!

Só que aí ... você coloca o resultado da segunda consulta dentro da variável

$db_query = "SELECT username FROM usuarios WHERE id = '$user_a'"; //Dados que serão executados

//o problema está nesta atribuiçao.
$db_run = mysql_query($db_query, $db_conexao); //Executando a variavel $db_query
$db_result = mysql_fetch_array($db_run);
$user = $db_result['username'];



Não sobreescreva a variável $db_run ... porque você está usando ela no while para varrer as atualizações.


Coloque qualquer nome de variável neste trecho:

$db_query = "SELECT username FROM usuarios WHERE id = '$user_a'"; //Dados que serão executados
 $db_outronome = mysql_query($db_query, $db_conexao); //Executando a variavel $db_query
 $db_result = mysql_fetch_array($db_outronome);
 $user = $db_result['username'];

Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#9 Lucas de Haro

Lucas de Haro

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino

Posted 07/07/2010, 10:43

Hmmm.. e eu pensei que poderia ser isto, dai eu coloquei toda $db_run2, mas não funcionou...

Números não 'entram' nas variáveis php?

Obrigado.

EDIT: Qualifiquei seu post.

Edição feita por: Lucas de Haro, 07/07/2010, 10:44.


#10 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 07/07/2010, 11:53

Números entram sim...

Mas não entendi pq vc perguntou se números entram nas variáveis....!?

:ponder:
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#11 Lucas de Haro

Lucas de Haro

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino

Posted 07/07/2010, 12:55

o 'entram' eu quis dizer no nome da varíavel, e não dentro dela..

exemplo se, isto:
$var = '';
seria o mesmo que:
$var1 = '';

Entendeu? porque antes de tu postar que era o problema com a $db_run, eu imaginei que poderia ser o nome, e eu mudei o segundo $db_run para $db_run2, porém não mudou nada, então pensei que o problema era outro, entendeu?

Amplexo.

#12 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 07/07/2010, 14:02

Ahh entendi...

Dessa forma funciona sim...

Você deve ter esquecido alguma coisa... quando colocou isso para não funcionar... pq iria funcionar normalmente...

(y)
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq