Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con resta desde php y mysql

Estas en el tema de Problema con resta desde php y mysql en el foro de Mysql en Foros del Web. Buena tarde a todos. Tengo una duda, ojala puedan ayudarme. Estoy dando algunos pasos pequeños en la programación php y MySQL. Mi problema es el ...
  #1 (permalink)  
Antiguo 23/01/2012, 17:56
 
Fecha de Ingreso: junio-2011
Ubicación: Irapuato
Mensajes: 13
Antigüedad: 12 años, 9 meses
Puntos: 0
Problema con resta desde php y mysql

Buena tarde a todos.

Tengo una duda, ojala puedan ayudarme. Estoy dando algunos pasos pequeños en la programación php y MySQL. Mi problema es el siguiente:

Tengo una base de datos llamada "saie" en MySQL. Dentro de esa bd, tengo una tabla que se llama "saiedatos". Dentro de esta tabla tengo 13 campos que se llaman de la siguiente forma:

ID (identificador auto increment)
cliente
descripción
dateArrival1 (fecha en que se da de alta la cotizacion)
dateArrival2
vendedor
observaventas
nocotizacion
estatus
fechacierre
onbservaaplica
observaemerson
dateArrival4

Tengo un formulario que para cerrar una cotización, automaticamente me hace un update en los siguientes campos: estatus y fechacierre. Esto lo realiza solamente cuando le doy algun ID ya guardado.

El código es el siguiente:

<style type="text/css">
<!--
.Estilo1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: x-small;
font-weight: bold;
color: #0000FF;
}
.Estilo2 {
color: #FFFFFF;
font-size: medium;
}
body {
background-image: url(/imagenes/fondogruporsincem.jpg);
}
-->
</style>
<?php
$ID=$_POST['ID'];
$Estatus=$_POST['estatus'];
$femision=$_POST['femision'];
$link = mysql_connect("localhost:3306","publicuser","userp ublic");
mysql_select_db("saie",$link);
$query = "UPDATE saiedatos SET fechacierre='".$femision."',estatus='".$Estatus." ' WHERE ID='".$ID."'";
$result=mysql_query($query);
//************************************************** ************************************************
$query2= "SELECT dateArrival1 FROM saiedatos WHERE ID='$ID'";
$result2=mysql_query($query2);
$prepara= mysql_num_rows($result2);
$inicial=$row['dateArrival1'];
$restafinal= $femision-$inicial;

$query3 = "UPDATE saiedatos SET dateArrival4='".$restafinal."' WHERE ID='".$ID."'";
$result=mysql_query($query3);
?>
<html>
<head>
<title></title>
<META HTTP-EQUIV="Refresh" CONTENT="5; URL=mainframesaie.htm">
</head>
<body>
<div align="center" class="Estilo1">
<p class="Estilo2">&nbsp;</p>
<p class="Estilo2">&nbsp;</p>
<p class="Estilo2">&nbsp;</p>
<p class="Estilo1"><span class="Estilo3">DATOS ALMACENADOS CORRECTAMENTE</span></div>
</body>
</html>

El campo "femision" asigna automaticamente una fecha con formato dia-mes-año.

Lo que requiero es que con este php:

1) Me actualicé el estatus.
2) Me actualice la fecha de cierre
3) Me reste el tiempo que ha pasado entre el día que se registró la cotización y la fecha de cierre.

Lo primero lo hace hasta donde pongo los ****************
Pero despues de ahi no se como hacerle.

Ya me puse a hacerle de diferentes formas y no logro conseguir más.

Por ejemplo, quiero que despues de que actualiza el estatus y la fecha de cierre, se conecte a la bd, obteenga el valor "dateArrival1", lo asigne a u8na variable y despues se la pueda restar a "femision". Posteriormente, se puieda hacer un update a la tabla y con esta resta, actualice el campo "dateArrival4".

Alguna sugerencia? idea? sugerencia?

Gracias por su ayuda.
  #2 (permalink)  
Antiguo 24/01/2012, 02:37
 
Fecha de Ingreso: mayo-2011
Ubicación: sinaloa
Mensajes: 150
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Problema con resta desde php y mysql

Intenta hacer la consulta sin los puntos en las variables,
mejor aun,
intenta hacer la consulta directamente desde el mysql.
si el error es hasta los ASTERISCOS el 'query' no esta bien escrito

intenta poner esto
mysql_query($query) or die(mysql_error());
  #3 (permalink)  
Antiguo 24/01/2012, 06:55
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 2 meses
Puntos: 19
Respuesta: Problema con resta desde php y mysql

EL error esta aca

$query2= "SELECT dateArrival1 FROM saiedatos WHERE ID='$ID'";
$result2=mysql_query($query2);
$prepara= mysql_num_rows($result2);
$inicial=$row['dateArrival1'];
$restafinal= $femision-$inicial;

$query3 = "UPDATE saiedatos SET dateArrival4='".$restafinal."' WHERE ID='".$ID."'";
$result=mysql_query($query3);


Fijate que estas utilizando $inicial, pero nunca lo sacaste de la base de datos.

Tendria que quedas mas o menos asi:

$query2= "SELECT dateArrival1 FROM saiedatos WHERE ID='$ID'";
$result2=mysql_query($query2);
$prepara= mysql_num_rows($result2);
/***********LINEA NUEVA******************/

$datos = mysql_fetch_array($result2);
$inicial=$datos['dateArrival1'];

/***********FIN LINEA NUEVA******************/

$restafinal= $femision-$inicial;
if($restafinal > 0){
$query3 = "UPDATE saiedatos SET dateArrival4='".$restafinal."' WHERE ID='".$ID."'";
$result=mysql_query($query3);
}


En definitiva, la consulta esta bien, el problema es que queres extraer datos, pero nunca lo haces. Por lo que la $restafinal siempre te va a quedar igual a $femision

Por otra parte, si se trata de fecha, no es la manera correcta de restarlas.

Espero haber sido de utilidad...

saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.

Etiquetas: campos, php, query, resta, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:38.