Vencimiento de Productos

Amigo quisiera saber si a través de php o ajax se podría realizar la siguiente consulta:
Estoy trabajando con mysql y php, resulta que necesito hacer una consulta que me muestre los productos a vencercen es decir; ingreso a la bd el producto, fecha de vencimiento y el numero de días para que me avise que esta próximo a vencerse:
Ejemplo: ingreso el producto "leche" y se vence el "10-dic-2008" y necesito algo donde me avise o me muestre que faltan "2" días para vencerse, no se si me habré echo entender pero esa es la idea y me gustaría que sumerced me prestara una mano ayuda para poder realizar este ejercicio.
1

1 Respuesta

174.075 pts.
Pues sí, no veo el problema. Con php puedes hacer una consulta que te muestre los datos que dices y mostrarlos en pantalla. Por ejemplo:
<?php
$resultado = mysql_query("SELECT producto, vencimiento, datediff(vencimiento, " . date("Y-m-d") . " AS faltan FROM tutabla");
while ($linea=mysql_fetch_assoc($resultado) {
echo $linea["producto"] . " " . $linea["vencimiento"] . " " . $linea["faltan"];
}
?>
David estuve analizando su código pero para usar el datediff los dos campos deben de estar en formato date, en mi caso no es así, acá le envío el script de la tabla:
CREATE TABLE `elipsis_subcategorias` (
`SubCodigo` smallint(4) unsigned zerofill NOT NULL,
`SubNombre` varchar(30) character set utf8 collate utf8_spanish_ci NOT NULL,
`CatCodigo` smallint(3) unsigned zerofill NOT NULL,
`DiasVenc` int(2) NOT NULL,
`FechaVenc` date default NULL,
PRIMARY KEY (`SubCodigo`),
KEY `CatCodigo` (`CatCodigo`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='InnoDB free: 10240 kB';
include "conexion.php";
$conexion=conectarse();
$resultado = mysql_query("SELECT SubNombre,fecha, datediff(fecha, " . date("Y-m-d") . " AS DiasVenc FROM elipsis_subcategorias");
while ($linea=mysql_fetch_assoc($resultado) {
echo $linea["SubNombre"] . " " . $linea["fecha"] . " " . $linea["DiasVenc"];
}
?>
Y no se que colocar en date("Y-m-d")... discúlpeme tanta molestia pero es que apenas estoy incursionando en este mundo de la programación... te agradezco por tu paciencia...
O mejor usted que tiene más experiencia como me sugiere que haga esta consulta, mi idea era que el usuario en lugar de ingresar la fecha restante ingresara el numero de días para que no se equivora haciendo cálculos en su memoria sino que al ingresar el numero de días el sistema hiciera el calculo por el.
Es decir ingresa a través de un formulario el nombre del producto, la fecha de vencimiento el numero de días para vencerse.
Ejemplo si por producto se vence el10-dic-2008 e ingreso en el formulario 5 días, en la consulta me debería de mostrar el producto le quedan 5 días para vencerse.
Te sugeriría que la tabla tuviese una fecha de vencimiento y que el cálculo de los días lo realizases mediante programación.
Es decir, darle al usuario la oportunidad de que introduzca la fecha del vencimiento directamente, o bien los días que faltan para su vencimiento (de ahí obtienes la fecha de vencimiento añadiéndole esos días a la fecha de hoy.
La operación inversa es la que te ofrecí en la consulta que sería correcta. Los parámetros del datediff serían la FechaVenc y la fecha actual (eso es lo que hace la función date("Y-m-d").
Es decir:
$resultado = mysql_query("SELECT SubNombre,FechaVenc, datediff(FechaVenc " . date("Y-m-d") . " AS DiasVenc FROM elipsis_subcategorias");
No te recomiendo que mantengas el campo DiasVenc puesto que es un dato que puede (y debe) calcularse cada vez.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas