Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Ler variavel antes de abrir outras chaves

22-01-2014 11:11

Bom dia galera, olha eu aqui denovo!

Preciso da ajuda de vcs no seguinte:

Tenho uma função que salva um log no banco de dados, ta tudo funcionando certinho, aí que vem o detalhe

Segue o código que estou usando:

function salvaLog($mensagem) { $ip = $_SERVER['REMOTE_ADDR']; // Salva o IP do visitante $hora = date('Y-m-d H:i:s'); // Salva a data e hora atual (formato MySQL) $id_loja     = 'AQUI PUXA OS PONTOS DA VARIAVEL $loja_id'; $pontos = 'AQUI PUXA OS PONTOS DA VARIAVEL $pontos_premio'; $entregue     = 'NÃO'; echo $pontos; // Usamos o mysql_escape_string() para poder inserir a mensagem no banco //   sem ter problemas com aspas e outros caracteres $mensagem = mysql_escape_string($mensagem); // Monta a query para inserir o log no sistema $sql = "INSERT INTO `logs` VALUES (NULL, '".$hora."', '".$ip."', '".$mensagem."', '".$id_loja."', '".$pontos."', '".$entregue."')"; if (mysql_query($sql)) { return true; } else { return false; } } 

Na parte que fala assim:

$id_loja     = 'AQUI PUXA OS PONTOS DA VARIAVEL $loja_id'; $pontos = 'AQUI PUXA OS PONTOS DA VARIAVEL $pontos_premio'; 

Eu preciso que leia os dados da variavel que estão acima, puxando os dados do banco de dados.

Eu reparei que se eu coloco dados na mão, funciona... grava no banco... agora variavel ele não grava.

O "entregue" por exemplo, que tem que gravar "NÃO" funciona, com o codigo abaixo:

$entregue     = 'NÃO'; 

O codigo la de cima que tem que puxar os dados do BD está assim:

$id_premio = $_GET['id_premio']; $query_id_premio = "select * from premios where id_premio = '$id_premio'"; $rs_id_premio = mysql_query($query_id_premio); $i = 1;     while($campo_id_premio = mysql_fetch_array($rs_id_premio)){         $id_premio             = $campo_id_premio['id_premio'];         $nome_premio         = $campo_id_premio['nome_premio'];         $foto_premio         = $campo_id_premio['foto_premio'];         $pontos_premio         = $campo_id_premio['pontos_premio'];         $descricao_premio     = $campo_id_premio['descricao_premio'];      $atualizapontos = $pontos_loja - $pontos_premio; 

Conseguiram entender? rs

Acho que é simples, mas ja testei de tudo, ele não puxa a variavel.

Aguardo ajuda de vcs e obrigado desde já!

Abs
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17720
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Ler variavel antes de abrir outras chaves

22-01-2014 14:01

Já verificou se o campo do banco de dados que deve gravar o texto no bd está varchar? Porque se tiver int só aceita números.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Ler variavel antes de abrir outras chaves

24-01-2014 14:54

Esta como VARCHAR sim,

Se eu coloco algum dado manual ele funciona, se eu puxo a variavel que está em cima da função não da certo.

Se eu coloco só a variavel $pontos_premio no lugar da var $mensagem, grava tmb, então esta funcionando,

O problema é que não le a var do BD quando esta dentro da funcão, e se está fora ele não grava.

Esta é minha consulta pra puxar os $pontos_premio (se eu der um echo embaixo dela exibe certinho).

<?php $id_premio = $_GET['id_premio']; $query_id_premio = "select * from premios where id_premio = '$id_premio'"; $rs_id_premio = mysql_query($query_id_premio); $i = 1;     while($campo_id_premio = mysql_fetch_array($rs_id_premio)){         $id_premio             = $campo_id_premio['id_premio'];         $nome_premio         = $campo_id_premio['nome_premio'];         $foto_premio         = $campo_id_premio['foto_premio'];         $pontos_premio         = $campo_id_premio['pontos_premio'];         $descricao_premio     = $campo_id_premio['descricao_premio'];         ?>

Esta é minha função:

<? /** * Função para salvar mensagens de LOG no MySQL * * @param string $mensagem - A mensagem a ser salva * * @return bool - Se a mensagem foi salva ou não (true/false) */ function salvaLog($mensagem) { $ip = $_SERVER['REMOTE_ADDR']; // Salva o IP do visitante $hora = date('Y-m-d H:i:s'); // Salva a data e hora atual (formato MySQL) $id_loja     = ''; $pontos = 'AQUI VEM OS PONTOS'; $entregue     = 'NÃO'; echo $pontos; // Usamos o mysql_escape_string() para poder inserir a mensagem no banco //   sem ter problemas com aspas e outros caracteres $mensagem = mysql_escape_string($mensagem); // Monta a query para inserir o log no sistema $sql = "INSERT INTO `logs` VALUES (NULL, '".$hora."', '".$ip."', '".$mensagem."', '".$id_loja."', '".$pontos."', '".$entregue."')"; if (mysql_query($sql)) { return true; } else { return false; } } ?> <?php $mensagem = "$nome resgatou o premio $nome_premio de $pontos_premio pontos"; salvaLog($mensagem) ?>

Nesta linha da função: $pontos = 'AQUI VEM OS PONTOS';

Se eu colocar assim, ele vai gravar: "AQUI VEM OS PONTOS"

Se eu colocar assim: $pontos = $pontos_premio;
Ele não grava nada

Mesma coisa na linha: $loja_id= 'AQUI VEM A LOJA_ID';

Entendeu? Rs

Aí eu eu acho que está o erro, eu não sei como puxar o $pontos_premio para a função

Valeu por enqto, abs
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17720
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Ler variavel antes de abrir outras chaves

24-01-2014 15:25

Você tem que criar a variável global, assim:

<?php $pontos = ""; // while da consulta $pontos = 10; // valor do bd // while da consulta // função de teste function Teste() { global $pontos; // carregando a variável dentro da função echo "$pontos"; } // carregando a função Teste(); ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Ler variavel antes de abrir outras chaves

24-01-2014 15:46

Rapaz!

Depois de um tira e poe danado deu certo rs!

Pelo que eu entendi, eu faço uma nova var dentro da consulta, depois dentro da função eu crio a var global com essa nova var, e ele le, isso né? rs

Importante que funcionou belezinha!

Valeu WEB, mais uma vez.

Logo estarei de volta, tenha certeza hehe, estou aprendendo e fazendo ao mesmo tempo, então tenho muitas duvidas!

Muito Obrigado!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17720
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Ler variavel antes de abrir outras chaves

24-01-2014 16:15

A var deve ser criada primeiramente fora de qualquer coisa. Na consulta, você atribui um novo valor a ela, depois, usa o global para carregar ela dentro da função.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado