Jump to content


Hambonso

Member Since 11/02/2003
Offline Last Active 03/03/2012, 12:12
-----

Topics I've Started

Formatação De 6 Casas Decimais

08/05/2010, 13:25

Eu estou readaptando uma função que formata valores em moeda, para que possa ser inserido no banco, valores com 6 casas decimais. Mas estou tendo problemas, quando o valor digitado for maior que 999,999999. A função funciona perfeitamente quando são digitados valores menores que 1.000, mas igual ou maior que esse valor, a função deixa de formata com 6 casas decimais e passa a formatar com 5 casas decimais. Segue o código a baixo:

A FUNÇÂO:
function Formata(campo,tammax,teclapres,decimal) {
var tecla = teclapres.keyCode;
vr = Limpar(campo.value,"0123456789");
tam = vr.length;
dec=decimal

if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

if (tecla == 8 )
{ tam = tam - 1 ; }

if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
{

if ( tam <= dec )
{ campo.value = vr ; }

if ( (tam > dec) && (tam <= 9) ){
campo.value = vr.substr( 0, tam - 6 ) + "," + vr.substr( tam - 6, tam ) ; }
if ( (tam >= 10) && (tam <= 12) ){
campo.value = vr.substr( 0, tam - 9 ) + "." + vr.substr( tam - 9, 3 ) + "," + vr.substr( tam - 6, tam ) ;}
if ( (tam >= 13) && (tam <= 15) ){
campo.value = vr.substr( 0, tam - 12 ) + "." + vr.substr( tam - 12, 3 ) + "." + vr.substr( tam - 9, 3 ) + "," + vr.substr( tam - 6, tam ) ; }
if ( (tam >= 16) && (tam <= 18) ){
campo.value = vr.substr( 0, tam - 15 ) + "." + vr.substr( tam - 15, 3 ) + "." + vr.substr( tam - 12, 3 ) + "." + vr.substr( tam - 9, 3 ) + "," + vr.substr( tam - 6, tam ) ; }
if ( (tam >= 19) && (tam <= 21) ){
campo.value = vr.substr( 0, tam - 18 ) + "." + vr.substr( tam - 18, 3 ) + "." + vr.substr( tam - 15, 3 ) + "." + vr.substr( tam - 12, 3 ) + "." + vr.substr( tam - 9, 3 ) + "," + vr.substr( tam - 6, tam ) ;}
}

}

No FORM
<td>&nbsp;<input type="text" name="vlcota" maxlength="20" onKeydown="Formata(this,20,event,6)" style='text-align:right; border:1px solid black; font-size:9pt; font-weight:bold; color: #000088; width:120px; height:20px;'>&nbsp;<font face="Arial" size="-6" color="#000009"><b>Valor máximo: 9.999.999,999999</b></font></td>

O que está errado no código da função que está causando esse erro na formatação durante a digitação ?

Desde já agradeço pela atenção.

[Fechado a Pedido] Formatando Relatório Com Php E Html

19/04/2010, 14:29

Eu estou com dificuldades para mudar um relatório gerado. Atualmente, o código gera o relatório de maneira bruta, ou seja, ele exibe todo o conteúdo da tabela. As informações a serem usadas nesse relatório, está em uma única tabela, e essa tabela possui vários registros de uma mesma pessoa, e eu gostaria de mudar o layout do relatório, para que ele possa exibir conforme o exemplo da imagem abaixo:

Posted Image

Eu queria saber, como eu posso montar o relatório como o modelo acima. Detalhe, usando apenas PHP, MySQL e HTML, pois o servidor aonde ficará esse código, não possui muito recursos disponíveis, por isso tem que ser em PHP, MySQL e HTML.

Desde já agradeço pela atenção e ajuda.

Podem fechar esse tópico, pois já consegui a resposta em um outro forum !

Reverter Formatação De Moeda

17/04/2010, 12:49

Pessoal, estou tendo uma dificuldade em reverter a formatação de variáveis que contém valores monetários para o formato original. As variáveis irão receber valores em R$ (reais) atravês de uma função de formatação de moeda durante a digitação do valor no campo específico. Assim que o form é enviado, essas variáveis deverão ser inclusas no banco no formato original, ou seja:

Formatação em Reais:
$salarioliq = "1.234,58"

Formatação Original:
$salarioliq = "1234.58"

A estrutura dos campos que irá receber esses valores, estão definidos como DECIMAL(10,2). Acredito que seja coisa simples, mas não estou conseguindo fazer essa reversão, já procurei, revirei e não encontrei nada que faça isso.

Desde já agradeço pela atenção

Pode fechar o post, pois achei a solução parqa isso. Como eu imaginava, é uma coisa simples que uma simples função reverte a formatação. para quem se deparar com o mesmo problema que eu ai vai a função:

function moeda($get_valor)
{
   $source = array('.', ','); 
   $replace = array('', '.');
   $valor = str_replace($source, $replace, $get_valor); //remove os pontos e substitui a virgula pelo ponto
   return $valor; //retorna o valor formatado para gravar no banco
}

E para chamar a função, é mais simples ainda:
$valor_final=moeda($_POST['valor']);

[Resolvido] Update Não Está Funcionando

11/04/2010, 01:42

Eu não sei o que pode estar acontecendo com o código abaixo que faz um UPDATE no MYSQL. Já vi, revi e refiz várias vezes, mas tudo está certo, mas só que o comando do UPDATE não atualiza o banco. O que pode ser ?

<?php
$conn = mysql_connect("localhost", "root", "") or die("Impossivel conectar");
if($conn)
	{
		mysql_select_db("controle", $conn);
	}

$id = $_POST['id'];
$nome = strtoupper($_POST['nome']);
$login = $_POST['login'];
$senha = $_POST['senha'];
$email = $_POST['email'];

$x = mysql_query("UPDATE usuario SET login='$login', nome='$nome', senha='$senha', email='$email' WHERE id='$id';");

if($x)
{
	echo"
		<br>
		<table align='center' width='80%' border='0' cellspacing='1' cellpadding='0' bgcolor='#024282'>
			<tr>
				<td align='center' bgcolor='#024282'><font class='titcabec2'>INFORMAÇÕES ALTERADAS</font></td>
			</tr>
			<tr>
				<td bgcolor='#ffd700'>
					<table align='center' width='100%' border='0' cellspacing='0' cellpadding='0'>
						<tr>
							<td>&nbsp;</td>
						</tr>
						<tr>
							<td>
								<table align='center' width='100%' border='0' cellspacing='0' cellpadding='0'>
									<tr>
										<td width='40%' class='textologin' align='right'>Nome Completo:&nbsp;</td>
										<td class='txtdatahora'>&nbsp;$nome</td>
									</tr>
									<tr>
										<td width='40%' class='textologin' align='right'>Login de Acesso:&nbsp;</td>
										<td class='txtdatahora'>&nbsp;$login</td>
									</tr>
									<tr>
										<td width='40%' class='textologin' align='right'>Senha:&nbsp;</td>
										<td class='txtdatahora'>&nbsp;$senha</td>
									</tr>
									<tr>
										<td width='40%' class='textologin' align='right'>E-mail para Contato:&nbsp;</td>
										<td class='txtdatahora'>&nbsp;$email</td>
									</tr>
								</table>							
							</td>
						</tr>
						<tr>
							<td>&nbsp;</td>
						</tr>
					</table>
				</td>
			</tr>
		</table><br>
		<meta http-equiv='refresh' content='8;URL=index.php?adm=alteracot'>
	";// verificamos se os dados foi inserido se for ele executa o echo
}
else
{
	echo"
		<table width='80%' border='1' align='center' cellspacing='1' bordercolor='#0066FF'>
			<tr>
				<td align='center' cellspacing='1' bgcolor='#0066FF'><strong><font color='#FFCC00' size='2' face='Arial'>As informações abaixo não foram Alteradas </font></strong></td>
			</tr>
			<tr>
				<td>
					<table width='100%'  border='0' align='center' cellpadding='0' cellspacing='0'>
						<tr>
							<td>&nbsp;</td>
						</tr>
						<tr>
							<td align='center'><strong><font color='#CC0000' size='2' face='Arial'>A ALTERAÇÃO NÃO PODE SER REALIZADA </font></strong></td>
						</tr>
						<tr>
							<td align='center'><strong><font color='#000000' size='1' face='Arial'>Ocorreu um erro na tentativa de salvar as informações no banco. Tente alterar novamente, caso o erro persista, contate o desenvolvedor.</font></strong></td>
						</tr>
						<tr>
							<td>&nbsp;</td>
						</tr>
					</table>
				</td>
			</tr>
			<tr>
				<td align='center' cellspacing='1' bgcolor='#0066FF'><strong><font color='#FFCC00' size='1' face='Arial'>A página será redirecionada em 8 segundos</font></strong></td>
			</tr>
		</table>
		<meta http-equiv='refresh' content='8;URL=index.php?adm=alteracot'>
	";
}
?>

Ou tem algo de errado ?!
Desde já agradeço pela atenção.

Já revirei o código de ponta cabeça, e agora ele está dando uma resposta, agora o código está assim:

$sql = "UPDATE usuario SET login = '$login', nome = '$nome', senha = '$senha', email = '$email' WHERE id = '$id'";
$x = mysql_query($sql,$conn);

if($x)
{
Aqui sairá a mensagem que a alteração foi feita e redireciona a página depois de 8 segundos.
}

else
{
Aqui o sistema informa que não foi feita a alteração no banco, e redireciona a página depois de 8 segundos.
}


Mas sempre executando o que está no ELSE, ou seja, o UPDATE não foi feito. O que é que estou fazendo de erro ?!..

Agora eu alterei o comando para:

$x = mysql_query("UPDATE usuario SET nome = '$nome', login = '$login', senha = '$senha', email = '$email' WHERE id = '$id'") or die(mysql_error());

E deu o seguinte erro:

Unknown column 'email' in 'field list'


O que vem a ser isso ?!

Descobri o erro !!... Pode fechar o Tópico.

Inserir Um Mesmo Valor Para Duas Tabela Mysql

05/04/2010, 11:33

Bom dia

Eu estou com dúvidas a respeito de como fazer a inseção de de um mesmo valor em duas tabelas no MYSQL, dependendo de uma condição.

Explicando melhor:
Eu possuo um controle de cotas da bolsa de valores, na qual todos os dias é feito a atualização das cotas de cada cliente, o que eu estou precisando é fazer que antes de eu efetuar a inclusão de uma nova cota do cliente na tabela A, ele faça uma verificação de sua matrícula em na tabela B, caso a sua matrícula não exista na tabela B, ele faça a inserção de alguns dados na tabela A e outros dados na tabela B, mas se a matrícula já existir na tabela B, ele somente irá inserir os dados na tabela A.

Como eu posso fazer isso antes do comando INSERT ?!

Desde já agradeço pela atenção e ajuda.

IPB Skin By Virteq