PHP - problemas con una variable concatenada

   
Vista:

problemas con una variable concatenada

Publicado por manoat (33 intervenciones) el 02/10/2013 05:54:08
tengo una variable que de llama $TiempoDeUso
en ella guardo el valor concatenado de un texto y tres variablesa asi:
$Dia = $DiaAct - $DiaAdq;
$Mes = $MesAct - $MesAdq;
$Año = $AñoAct - $AñoAdq;

$TiempoDeUso = ( "En el inventario, El tiempo de uso es de: ". $Año ." años ".$Mes . " meses ". $Dia. " dias ");

si lo muestro por pantalla en un echo muestra esto:
En el inventario, El tiempo de uso es de: 14 años 3 meses 5 dias

pero cuando actualizo la bace de datos en el campo de la tabla guarda esto
5155

no tengo ni idea de porque hace esto..
ayuda por favor

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

problemas con una variable concatenada

Publicado por xve (5520 intervenciones) el 02/10/2013 10:04:42
Hola Manoat, no me queda muy clara tu pregunta...

Como guardar los datos en la base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por Mari Carmen (145 intervenciones) el 02/10/2013 20:03:55
Puede ser por muchas cosa. Por ejemplo que el campo en el que metes el string es numérico y hace un intento de pasar el string a int o que la variable al recoger el valor de la BBDD le hagas alguna transformación rara.
A saber, como no pongas algo mas del código, como por ejemplo la parte en la que actualizas la variable $TimpoDeUso en la BBDD. O como recoges el valor de la variable de la BBDD no podremos hacer nada.
También seria útil que mencionases como es la tabla donde metes los datos.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por manoat (33 intervenciones) el 02/10/2013 20:16:06
lo he resuelto mass adelante en el codigo antes de incertar habia una modificacion al valor de la variable que erroneamente cambiaba el valor... solo que ,ahora al correr el codigo me da este error

atal error: Maximum execution time of 30 seconds exceeded

este es el codigo completo:

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

mysql_select_db($database_conexionsara, $conexionsara);
$query_ConsultaActivos = "SELECT * FROM activos";
$ConsultaActivos = mysql_query($query_ConsultaActivos, $conexionsara) or die(mysql_error());
$row_ConsultaActivos = mysql_fetch_assoc($ConsultaActivos);
$totalRows_ConsultaActivos = mysql_num_rows($ConsultaActivos);

date_default_timezone_set("America/Panama");
/*$Porcentaje = $_POST["Porc"];*/
/*$ValorActual = $_POST["ValorActual"];*/
do{
$Porcentaje =$row_ConsultaActivos['PORCDEP'];
$ValorActual =$row_ConsultaActivos['VALORACTUAL'];
$Secuencia = $row_ConsultaActivos['SECUENCIA'];
$ValorAgregado = $row_ConsultaActivos['VALORAGREGADO'];
$Valor = $row_ConsultaActivos['VALOR'];
if (($Porcentaje)> 0){
$date = strtotime(date("y-m-d"));
$date1 = date("Y-m-d");
$AñoAct= date("Y", $date);
$MesAct= date("m", $date);
$DiaAct= date("d", $date);

$date7 = strtotime($row_ConsultaActivos['FECHAADQUISICION']);
$AñoAdq= date("Y", $date7);
$MesAdq= date("m", $date7);
$DiaAdq= date("d", $date7);

if(($DiaAct)< $DiaAdq){
$MesAct= $MesAct - 1;
$DiaAct = $DiaAct +30;
}
if(($MesAct)< $MesAdq){
$AñoAct= $AñoAct - 1;
$MesAct = $MesAct +12;
}

$Dia = $DiaAct - $DiaAdq;
$Mes = $MesAct - $MesAdq;
$Año = $AñoAct - $AñoAdq;

$Mensaje = ( "En el inventario, El tiempo de uso es de: ". $Año ." años ".$Mes . " meses ". $Dia. " dias ");
/* echo $TiempoDeUso;
echo $row_ConsultaActivos['SECUENCIA'];
*/ $AñosEnDias = $Año * 365;
$MesesEnDias = $Mes * 30;
$TiempoDeUso = $AñosEnDias + $MesesEnDias + $Dia;
//==============================================
// SI EL VALOR ACTUAL ES MAYOR O IGUAL A 100
//==============================================
if (($ValorActual)>= 100) {
$depacum = $row_ConsultaActivos['TOTALDEPRECIADO'];
$DepAnual=(($ValorActual * $Porcentaje)/100)* $Año;
$DepMen = ((($ValorActual * $Porcentaje)/100)/12)* $Mes;
$DepDia = (((($ValorActual * $Porcentaje)/100)/12)/30)* $Dia;
$DepTotal = $DepAnual + $DepMen + $DepDia;
$ValorReal = $ValorActual - $DepTotal;
$NewVal= $ValorActual - $DepTotal;
if (($NewVal)<= 1){
$NewVal = 1;
$TotalDepreciado = $ValorActual - 1;
}else{
$TotalDepreciado = $DepTotal;
}
$RestaAcumulada = $depacum - $DepTotal;
//==============================================
// ACTUALIZACION LOS DATOS DE LA TABLA ACTIVOS
//==============================================
$updateSQL = sprintf("UPDATE activos SET DEPRECIACIONACUMULADA=%s, VALORREAL=%s, VALORDEPRECANUAL=%s, VALORDEPRECMENS=%s, VALORDEPRECDIARIO=%s, FECHAACTUAL=%s, TOTALDEPRECIADO=%s, TIEMPOUSO=%s WHERE SECUENCIA=%s",
GetSQLValueString($DepTotal, "double"),
GetSQLValueString($NewVal, "double"),
GetSQLValueString($DepAnual, "double"),
GetSQLValueString($DepMen, "double"),
GetSQLValueString($DepDia, "double"),
GetSQLValueString(date("Y-m-d"), "date"),
GetSQLValueString($TotalDepreciado, "double"),
GetSQLValueString($Mensaje, "text"),
GetSQLValueString($Secuencia, "text"));
mysql_select_db($database_conexionsara, $conexionsara);
/*mysql_query("SET NAMES 'utf-8'");*/
$Result1 = mysql_query($updateSQL, $conexionsara) or die(mysql_error());

if(($DepTotal)>$ValorAgregado){
$TotalDepreciado = ($Valor + $DepTotal)-1;
$updateSQL1 = sprintf("UPDATE activos SET TOTALDEPRECIADO=%s WHERE SECUENCIA=%s",
GetSQLValueString($TotalDepreciado, "double"),
GetSQLValueString($Secuencia, "text"));
mysql_select_db($database_conexionsara, $conexionsara);
mysql_query("SET NAMES 'utf-8'");
$Result1 = mysql_query($updateSQL1, $conexionsara) or die(mysql_error());
}

if (($RestaAcumulada)<> 0){
$DepreciacionAcumulada = $depacum + $DepDia;
$updateSQL2 = sprintf("UPDATE activos SET DEPRECIACIONACUMULADA=%s WHERE SECUENCIA=%s",
GetSQLValueString($DepreciacionAcumulada, "double"),
GetSQLValueString($Secuencia, "text"));
mysql_select_db($database_conexionsara, $conexionsara);
mysql_query("SET NAMES 'utf-8'");
$Result1 = mysql_query($updateSQL2, $conexionsara) or die(mysql_error());
}
//==============================================
// SI EL VALOR ACTUAL ES MENOR A 100
//==============================================
}
if (($ValorActual)< 100) {
$DepDia = $ValorActual / 365 ;
$DepTotal=$TiempoDeUso * $DepDia;
$NewVal = $ValorActual - $DepTotal;
if (($NewVal)<= 0){
$NewVal = 1;
$TotalDepreciado = $ValorActual - 1;
}else{
$TotalDepreciado = $DepTotal;
}
$Fecha1MySQL = implode( '-', array_reverse( explode( '/', $date ) ) ) ;
$updateSQL = sprintf("UPDATE activos SET TOTALDEPRECIADO=%s, VALORREAL=%s, VALORDEPRECDIARIO=%s, FECHAACTUAL=%s, TIEMPOUSO=%s WHERE SECUENCIA=%s",
GetSQLValueString($TotalDepreciado, "double"),
GetSQLValueString($NewVal, "double"),
GetSQLValueString($DepDia, "double"),
GetSQLValueString($Fecha1MySQL, "date"),
GetSQLValueString($TiempoDeUso, "text"),
GetSQLValueString($Secuencia, "text"));
mysql_select_db($database_conexionsara, $conexionsara);
/*mysql_query("SET NAMES 'utf-8'");*/
$Result1 = mysql_query($updateSQL, $conexionsara) or die(mysql_error());
}
}
} while ($row_ConsultaActivos = mysql_fetch_assoc($ConsultaActivos));
$rows = mysql_num_rows($ConsultaOrigen);
if($rows > 0) {
mysql_data_seek($ConsultaActivos, 0);
$row_ConsultaActivos = mysql_fetch_assoc($ConsultaActivos);
}

?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por zendi (824 intervenciones) el 02/10/2013 20:26:17
Hola manoat, Pero exactamente que quieres que se actualice en tu campo en la tabla? es el campo Numerico? de que tipo es? y en realidad ¿que deseas guardar?
Yo personalmente he trabajado concatenando fechas y lo utilizo para solamente imprimir las fecha con dia, mes y año para consulta.
comentanos bien para ayudarte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por manoat (33 intervenciones) el 02/10/2013 20:32:43
bien esto es lo que tengo que actualizar en la base de datos
TOTALDEPRECIADO=%s, VALORREAL=%s, VALORDEPRECDIARIO=%s, FECHAACTUAL=%s, TIEMPOUSO=%s WHERE SECUENCIA=%s",

los campos en la base de datos tienen el tipo de dato correcto

de hecho empieza a actualizar bien pero de pronto se detiene la actualizacion y da este mensaje:

Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\SARA_WEB\pruebafechas.php on line 122

y solo actualiza una cantidad pequeña de los registros
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por zendi (824 intervenciones) el 02/10/2013 20:47:20
Por lo visto los campos son de tipo numerico, y parece que se desbordan los valores, trata de aumentarle la cantidad a cada campo, o enviame la estructura de la tabla para ver.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por Mari Carmen (145 intervenciones) el 02/10/2013 20:52:36
En ocasiones es necesario aumentar el tiempo de ejecución del script que por defecto son 30 seg.

No he mirado aun tu código, es posible que entre en algún bucle infinito o que las peticiones a la BBDD son un poco lentas, a saber. Pero en casos donde llegamos al máximo tiempo de ejecución podemos aumentarlo con set-time-limit() ref: http://www.php.net/manual/es/function.set-time-limit.php.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por manoat (33 intervenciones) el 02/10/2013 20:59:23
ese es exactamente mi problema Mari Carmen
lo he hecho y me funciona no manda el error pero ahora me sale esto:

Incorrect date value: '1380690000' for column 'FECHAACTUAL' at row 1

alguna idea?

gracias a todos por su pronta respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por Mari Carmen (145 intervenciones) el 02/10/2013 21:07:33
Si leíste la documentación cuando usas set-time-limit() pone a cero el contador y vuelve a empezar a contar hasta el número de segundos que pusiste.
Por lo que si por defecto esta puesto a 30 y lo pones al principio del script como set-time-limit(120) empezará desde el principio a contar hasta 120s y luego dará el error.
Tienes los ejemplos en la documentación.

Aun que aumentar el limite de tiempo de ejecución aveces es necesario cuando se trata de muchos datos, la mayoría de veces que aparece ese error es por una implementación pobre.

Creo que tu error está en
implode( '-', array_reverse( explode( '/', $date)) ) );
la forma de $date ha de ser Y-m-d, y en realidad es $date = strtotime(date("y-m-d"));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por manoat (33 intervenciones) el 02/10/2013 21:59:04
cambie la instruccion atendiendo a tu observacion y puse
GetSQLValueString(date("Y-m-d"), "date"),

y eliminé:
$Fecha1MySQL = implode( '-', array_reverse( explode( '/', $date ) ) ) ;
y funcionó,

ahora que funciona la cosa esta en que demora demaciado en hacer la actualizacion a toda la tabla. esto era para hacer el codigo que calculara la depreciacion y el tiempo de uso y actualizara la tabla activos, pero pienso que esto para ser realmente eficiente debe de estar en una funcion dentro de la base de datos y ejecutarse una vez al dia por medio de un evento..
el asunto es que no tengo ni la mas remota idea de como hacerlo ...
alguien tiene literatura sobre todo con ejemplos para estudiar e intentar hacerlo.
seria de gran ayuda
gracias a todos por ayudarme hoy voy apoder dormir...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por Mari Carmen (145 intervenciones) el 02/10/2013 22:13:58
Si es bajo linux, usa CRON para hacer el mantenimiento diario. Hay mucha info por internet, así que tendrás que buscarte la vida.
Si es bajo windows... ni idea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por manoat (33 intervenciones) el 02/10/2013 23:51:17
dios me has sido de muchisima ayuda gracias un millo , si alguna vez necesitas ayuda estoy a tus ordenes ,este es mi correo marioathanasiadis@gmail.com mi FB:https://www.facebook.com/marionoriel.athanasiadisortiz?ref=tn_tnmn
gracias otra vez
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por manoat (33 intervenciones) el 03/10/2013 00:46:33
te gustaria ganarte unos dolares...
si te interesa necesito hacer ese mismo codigo en un procedimiento almacenado en mysql 5.5.22
y que se ejecute todos los dias a una hora x.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con una variable concatenada

Publicado por Mari Carmen (145 intervenciones) el 03/10/2013 02:36:32
Mira le he hecho algunos pocos cambios a tu código. Creo que son a mejor.
Debes intentar usar lo menos posible la BBDD, con ello me refiero a no meter texto redundante por todas partes. Si tienes una fecha ya metida no necesitas un string en el que tengas también la fecha.

Bueno, seguro que se pueden optimizar mas cosas, pero con el tema de consultas si no tienes ni la estructura de la BBDD es un poco difícil.

Espero que te sea de ayuda, pero no es lo que pides en el último mensaje. Lo del procedimiento ese:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
<?php
date_default_timezone_set("America/Panama");
 
if (!function_exists("GetSQLValueString")) {
	function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
	{
		if (PHP_VERSION < 6) {
			$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
		}
 
		$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
 
		switch ($theType) {
			case "text":
				$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
			break;
			case "long":
			case "int":
				$theValue = ($theValue != "") ? intval($theValue) : "NULL";
			break;
			case "double":
				$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
			break;
			case "date":
				$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
			break;
			case "defined":
				$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
			break;
		}
		return $theValue;
	}
}
 
mysql_select_db($database_conexionsara, $conexionsara);
 
$query_ConsultaActivos = "SELECT * FROM activos";
 
$ConsultaActivos = mysql_query($query_ConsultaActivos, $conexionsara) or die(mysql_error());
$row_ConsultaActivos = mysql_fetch_assoc($ConsultaActivos);
$totalRows_ConsultaActivos = mysql_num_rows($ConsultaActivos);
 
 
/*
 * Yo cambiaria varias cosas con respecto del tiempo.
 * Primero el date de ahora deberia estar fuera del bucle... no necesitamos que se repita cada vez que entramos en el bucle.
 */
$date = time(); //Definimos $date como un TIMESTAMP, asi el resto de valores dependeran de esta variable y no cambiaran si pasan 2 seg o 3, aun que en este caso daria igual. ya que son como minimo dias
$date1 = date("Y-m-d",$date); //Esta parte no haria falta si solo sirve para hacer los calculos de los dias que han pasado y metiésemos un timestamp en la BBDD.
//list($AñoAct,$MesAct,$DiaAct)=explode("-",$date1);//Esta parte no haria falta si solo sirve para hacer los calculos de los dias que han pasado.Lo que edito mas abajo
 
 
do{
	$Porcentaje =$row_ConsultaActivos['PORCDEP'];
	$ValorActual =$row_ConsultaActivos['VALORACTUAL'];
	$Secuencia = $row_ConsultaActivos['SECUENCIA'];
	$ValorAgregado = $row_ConsultaActivos['VALORAGREGADO'];
	$Valor = $row_ConsultaActivos['VALOR'];
 
	if (($Porcentaje)> 0){
 
		//Supongo que habras guardado en la BBDD algo parecido a Y-m-d asi que podemos cambiar esto a lo mismo que antes.
		$date2 = $row_ConsultaActivos['FECHAADQUISICION'];
		//list($AñoAdq,$MesAdq,$DiaAdq)=explode("-",$row_ConsultaActivos['FECHAADQUISICION']); //Esta parte no haria falta si solo sirve para hacer los calculos de los dias que han pasado.Lo que edito mas abajo
 
 
		//Yo en esta zona usaria funciones matematicas sin entrar en condicionales.De hecho usaria el timestamp.
		//ya lo comente en http://www.lawebdelprogramador.com/foros/PHP/1398675-calcular_edad_en_php.html
 
		$diferencia=$date-strtotime($date2);//Medida en segundos de la diferencia de ambas fechas.
 
		//Años que quedan. la parte entera son los años, la parte decimal son meses y días.
		$anos=$diferencia/60/60/24/30/12;
		//El resto es la parte decimal y para ello restamos la parte entera a $años. El resto contiene los meses y los dias
		$a_resto=$anos-(int)$anos;
		//Si multiplicamos el resto *12 nos da los meses la parte entera y la parte decimal que queda son los días.
		$meses=$a_resto*12;
		//El resto igual que en $a_resto pero con meses. Así que $m_resto es la parte decimal en donde están los días.
		$m_resto=$meses-(int)$meses;
		//Multiplicamos el resto *30 y nos quedamos con la parte entera que son los días.El resto no nos serviran ahora.
		$Dia=(int)($m_resto*30);
 
		$Mes=(int)$meses; //Nos quedamos solo con la parte entera, la parte decimal la usamos para los meses y dias.
		$Año=(int)$anos;  //Nos quedamos solo con la parte entera, la parte decimal ya la usamos con los dias.
 
		//El mensaje no lo meteria en la BBDD, ya tienes los valores de date en la BBDD, esto solo hace falta hacer un list como arriba comentado y un echo con el string. Te evitas meter mucha frase redundante.
		$Mensaje = ( "En el inventario, El tiempo de uso es de: ". $Año ." años ".$Mes . " meses ". $Dia. " dias ");
 
		//Todo esto no haria falta, nos quedamos con la parte entera de transformar segundos a min, de min a horas, de horas a dias.
		//$AñosEnDias = $Año * 365;
		//$MesesEnDias = $Mes * 30;
		//$TiempoDeUso = $AñosEnDias + $MesesEnDias + $Dia;
		$TiempoDeUso=(int)($diferencia/60/60/24);
 
 
		//==============================================
		// SI EL VALOR ACTUAL ES MAYOR O IGUAL A 100
		//==============================================
		if (($ValorActual)>= 100) {
			$depacum = $row_ConsultaActivos['TOTALDEPRECIADO'];
 
			//Supongo que esta zona tambien se podra simplificar por alguna parte. A saber.
			$DepAnual=(($ValorActual * $Porcentaje)/100)* $Año;
			$DepMen = ((($ValorActual * $Porcentaje)/100)/12)* $Mes;
			$DepDia = (((($ValorActual * $Porcentaje)/100)/12)/30)* $Dia;
			$DepTotal = $DepAnual + $DepMen + $DepDia;
			$ValorReal = $ValorActual - $DepTotal;
			$NewVal= $ValorActual - $DepTotal;
 
			if (($NewVal)<= 1){
				$NewVal = 1;
				$TotalDepreciado = $ValorActual - 1;
			}else{
				$TotalDepreciado = $DepTotal;
			}
			$RestaAcumulada = $depacum - $DepTotal;
			//==============================================
			// ACTUALIZACION LOS DATOS DE LA TABLA ACTIVOS
			//==============================================
			$updateSQL = sprintf("UPDATE activos SET DEPRECIACIONACUMULADA=%s, VALORREAL=%s, VALORDEPRECANUAL=%s, VALORDEPRECMENS=%s, VALORDEPRECDIARIO=%s, FECHAACTUAL=%s, TOTALDEPRECIADO=%s, TIEMPOUSO=%s WHERE SECUENCIA=%s",
				GetSQLValueString($DepTotal, "double"),
				GetSQLValueString($NewVal, "double"),
				GetSQLValueString($DepAnual, "double"),
				GetSQLValueString($DepMen, "double"),
				GetSQLValueString($DepDia, "double"),
				GetSQLValueString($date1, "date"),
				GetSQLValueString($TotalDepreciado, "double"),
 
				//No se que estarás haciendo, pero para visualizarlo no seria mejor tirar de date que ya tienes gardado, con un list($año,$mes,$dia)=explode("-",date_en_la_BBDD) y luego imprimir el mensaje via PHP
				//Lo digo mas que nada por que estas guardando una cantidad de strings por cada entrada que tengas, pudiendo ahorrar espacio en la BBDD.
				GetSQLValueString($Mensaje, "text"),
 
				GetSQLValueString($Secuencia, "text"));
			mysql_select_db($database_conexionsara, $conexionsara);
 
 
			$Result1 = mysql_query($updateSQL, $conexionsara) or die(mysql_error());
 
			if(($DepTotal)>$ValorAgregado){
				$TotalDepreciado = ($Valor + $DepTotal)-1;
				$updateSQL1 = sprintf("UPDATE activos SET TOTALDEPRECIADO=%s WHERE SECUENCIA=%s",
					GetSQLValueString($TotalDepreciado, "double"),
					GetSQLValueString($Secuencia, "text"));
				mysql_select_db($database_conexionsara, $conexionsara);
				mysql_query("SET NAMES 'utf-8'");
				$Result1 = mysql_query($updateSQL1, $conexionsara) or die(mysql_error());
			}
 
			if (($RestaAcumulada)<> 0){
				$DepreciacionAcumulada = $depacum + $DepDia;
				$updateSQL2 = sprintf("UPDATE activos SET DEPRECIACIONACUMULADA=%s WHERE SECUENCIA=%s",
					GetSQLValueString($DepreciacionAcumulada, "double"),
					GetSQLValueString($Secuencia, "text"));
				mysql_select_db($database_conexionsara, $conexionsara);
				mysql_query("SET NAMES 'utf-8'");
				$Result1 = mysql_query($updateSQL2, $conexionsara) or die(mysql_error());
			}
 
		}
		//==============================================
		// SI EL VALOR ACTUAL ES MENOR A 100
		//==============================================
		if (($ValorActual)< 100) {
			$DepDia = $ValorActual / 365 ;
			$DepTotal=$TiempoDeUso * $DepDia;
			$NewVal = $ValorActual - $DepTotal;
			if (($NewVal)<= 0){
				$NewVal = 1;
				$TotalDepreciado = $ValorActual - 1;
			}else{
				$TotalDepreciado = $DepTotal;
			}
 
			$updateSQL = sprintf("UPDATE activos SET TOTALDEPRECIADO=%s, VALORREAL=%s, VALORDEPRECDIARIO=%s, FECHAACTUAL=%s, TIEMPOUSO=%s WHERE SECUENCIA=%s",
				GetSQLValueString($TotalDepreciado, "double"),
				GetSQLValueString($NewVal, "double"),
				GetSQLValueString($DepDia, "double"),
				GetSQLValueString($date1, "date"),
				GetSQLValueString($TiempoDeUso, "text"),
				GetSQLValueString($Secuencia, "text"));
			mysql_select_db($database_conexionsara, $conexionsara);
			/*mysql_query("SET NAMES 'utf-8'");*/
			$Result1 = mysql_query($updateSQL, $conexionsara) or die(mysql_error());
		}
	}
} while ($row_ConsultaActivos = mysql_fetch_assoc($ConsultaActivos));
 
$rows = mysql_num_rows($ConsultaOrigen);
 
if($rows > 0) {
	mysql_data_seek($ConsultaActivos, 0);
	$row_ConsultaActivos = mysql_fetch_assoc($ConsultaActivos);
}
 
?>

PD: Como no puedo ejecutarlo es posible que falte algún ; o cualquier cosa así. Pero lo que quiero que veas es la idea de usar el timestamp en la BBDD y el resto tirar de ese timestamp.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

problemas con una variable concatenada

Publicado por manoat (33 intervenciones) el 03/10/2013 04:35:41
nunca crei que tendria tanta ayuda eres muy amable Mari Carmen que lastima que no estes en mi pais te intitaria a cenar para darte las gracias..
tengo un archivo sql con la tabla pero no se como enviartelo si lo quieres de todas formas yo lo voy a probar..
es para no quedarte con ganas de ver funcionar lo que has hecho , al menos a mi me pasa eso...
mil gracias no se como agradecerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar