1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvida na criação de tabela MYSQL

Discussão em 'Web Development' iniciada por souto, 18 de Julho de 2007. (Respostas: 6; Visualizações: 1420)

  1. souto

    souto To fold or to FOLD?

    Vivam,

    Tenho uma pequena dúvida, que os mais entendidos em bases de dados saberão com certeza esclarecer.
    Tenho uma tabela na qual preciso de ter um campo para guardar um preço, em €.
    Que tipos me sugerem para esse campo? Gostava de ter um campo que depois me facilitasse a inserção e me permitisse fazer contas facilmente. Estou a usar PHP.

    Obrigado pela atenção e cumprimentos.
     
  2. CoolMaster

    CoolMaster Power Member

    double ou float. Tu não vais guardar a moeda, não faz sentido.. guardas o valor e depois apresentas o simbolo do euro a frente :P. É so fazer contas nesses valores e o resto são historias :)
     
  3. AliFromCairo

    AliFromCairo Power Member

    Boas, não aconselho a utilização do tipo DOUBLE ou FLOAT para representar valores monetários em MySQL porque estes tipos arredondam os valores. Utiliza o tipo NUMERIC ou DECIMAL (são o mesmo).

    Podes consultar a sintaxe aqui.
     
  4. souto

    souto To fold or to FOLD?

    Obrigado pelas respostas, que me ajudaram bastante.
    Tenho outra dúvida no entanto. Imaginem que tenho uma variável que recebo dum post... Que tem o valor 5,2. Como é que eu insiro este valor para um campo do tipo DECIMAL ? Só preciso da sintaxe SQL.

    Cumprimentos.
     
  5. AliFromCairo

    AliFromCairo Power Member

    Boas, segue um exemplo:

    Código:
    CREATE TABLE empregado (
      id_empregado INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      salario DECIMAL(12,2) NOT NULL,
      PRIMARY KEY(id_empregado)
    );
     
    INSERT INTO empregado(salario) VALUES('2000.20');
    
    Aproveito também para dizer que é preciso ter cuidado ao definir a precisão (número de digitos significativos guardados) de uma coluna DECIMAL devido ao facto de o PHP ter um parâmetro que pode 'limitar' essa precisão.
    Por exemplo, ao guardares o valor 123456789123456.00 numa variável em PHP, se o paramêtro precision do PHP estiver com o valor 14, o valor guardado vai ser 123456789123450.00.
    Para resolver este problema, podes verificar o parâmetro precision no ficheiro php.ini (penso que o valor por defeito é de 14 digitos significativos) e alterá-lo, caso seja necessário, para um valor maior ou igual ao definido na coluna do tipo DECIMAL.
     
  6. souto

    souto To fold or to FOLD?

    :lol: ninguém ganha tanto por lá.

    Obrigado pela ajuda preciosa.

    Cumprimentos.
     
  7. AliFromCairo

    AliFromCairo Power Member

    Podias estar a desenvolver um site para uma empresa petrolífera sediada no Qatar.

    :-D
     

Partilhar esta Página