Jump to content


Photo

Mysql


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

#1 edmais

edmais

    Just do it!

  • Usuários
  • 797 posts
  • Sexo:Não informado
  • Localidade:BH - MG

Posted 01/09/2005, 15:53

Bom,

Eu estou usando uma nstrução do tipo:

$variavel = 55.55;

UPDATE tabela SET CAMPO = CAMPO - $variavel WHERE CAMPO2=$valor2

Bom, inicialmente o valor de "CAMPO" é zero. Então se eu tenho 0- 55.55 no BD era pra ser gravado -55.55 ou algo que indicasse que ele fosse negativo, certo? Mas isso não acontece, ele está sendo gravado com o valor positivo. O tipo do Campo é decimal, alguém tem alguma idéia?

Ps: Já testei com tipo FLOAT tbm e nada deu.

;(
Eduardo Batista

#2 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 01/09/2005, 17:33

isso parece comportamento de campo unsigned, será que seu campo nao foi criado como unsigned? dá uma conferida...

editando... testei aqui e funciona normal, desde que o campo decimal nao seja unsigned

Edição feita por: Stormbringer, 01/09/2005, 17:36.

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#3 edmais

edmais

    Just do it!

  • Usuários
  • 797 posts
  • Sexo:Não informado
  • Localidade:BH - MG

Posted 01/09/2005, 17:57

Não, não está como Unsigned.

A única diferença dele é que usei a dimensão de 14 com a precisão de 2. Isso poderiria interferir?

Valeu, Abraços.
Eduardo Batista

#4 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 02/09/2005, 12:07

no meu teste usei 9 precisao de 2... nao deve interferir...

muito estranho, cara...

minha tabela teste:

CREATE TABLE `testrte` (
`id` int(3) NOT NULL default '0',
`teste` time default '00:00:00',
`votos` decimal(9,2) NOT NULL default '0.00'
)

o registro que alterei, inicialmente:

id=1
teste = "00:00:00"
votos=0.00


query que executei:
update `testrte` set votos = votos - 55.55 WHERE id=1;

registro depois da query

id=1
teste = "00:00:00";
votos=-55.55


observando sua query:
UPDATE tabela SET CAMPO = CAMPO - $variavel WHERE CAMPO2=$valor2

se $variavel é -55.55, o campo vai ser alterado pra 55.55 positivo porque:

UPDATE tabela SET CAMPO = CAMPO -(-55.55) WHERE CAMPO2=$valor2

- com - é +, hehehe

mas como vc disse que sua variavel é 55.55, realmente é um lance estranho...

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#5 edmais

edmais

    Just do it!

  • Usuários
  • 797 posts
  • Sexo:Não informado
  • Localidade:BH - MG

Posted 05/09/2005, 10:14

Bom, acreditem ou não era um lance de versão do MySQL.

Valeu Storm pela atenção :D
Eduardo Batista




1 user(s) are reading this topic

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

IPB Skin By Virteq