PDA

Ver la Versión Completa : Obtener consulta entre fechas


maravert
16-11-2009, 22:34:53
Hola, gracias por su apoyo, pero estiy atorado en esto:

Deseo obtener una consulta en Mysql y php, donde en 2
campos de texto le doy el rango de fechas de donde puedo obtener los resultados.

Mi tabla de consulta principal (cobros) almacena los siguientes campos


CREATE TABLE `cobros` (
`id_cobros` int(11) NOT NULL auto_increment,
`Id_alumno` int(11) NOT NULL,
`id_cuenta` int(11) NOT NULL,
`id_concepto` int(11) NOT NULL,
`monto` float NOT NULL,
`fecha` text NOT NULL,
`fecha_registro` text NOT NULL,
`referencia` varchar(50) default NULL,
PRIMARY KEY (`id_cobros`),
KEY `Id_alumno` (`Id_alumno`,`id_cuenta`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
--
-- Volcar la base de datos para la tabla `cobros`
--
INSERT INTO `cobros` VALUES (1, 16, 3, 1, 10500, '09/11/2009', '09/11/2009', NULL);
INSERT INTO `cobros` VALUES (2, 29, 3, 1, 0, '09/11/2009', '09/11/2009', NULL);
INSERT INTO `cobros` VALUES (3, 19, 3, 1, 25000, '09/11/2009', '09/11/2009', NULL);
INSERT INTO `cobros` VALUES (4, 19, 3, 1, 25000, '09/11/2009', '09/11/2009', NULL);
INSERT INTO `cobros` VALUES (5, 8, 3, 2, 333, '09/11/2009', '09/11/2009', NULL);
INSERT INTO `cobros` VALUES (6, 14, 3, 1, 4, '09/11/2009', '09/11/2009', NULL);
INSERT INTO `cobros` VALUES (7, 20, 5, 1, 4200, '09/11/2009', '09/11/2009', '999');
INSERT INTO `cobros` VALUES (8, 12, 3, 1, 77777, '09/11/2009', '09/11/2009', NULL);



Como veran la fecha la guardo como tipo texto al igual que los campos de texto



De aqui tomo los valores del rango de fechas a consultar

$f1_cuenta = $_POST['fecha_inicial'];
$f2_cuenta = $_POST['fecha_final'];
$fecha1 = TRIM ($f1_cuenta);
$fecha2 = TRIM ($f2_cuenta);

Mi consulta es la siguiente:

mysql_select_db($database_conexion, $conexion);
$query_cuenta = sprintf("SELECT T1.id_concepto, T1.monto, T1.id_cuenta,T1.fecha, T1.referencia, T1.Id_alumno, T2.id, T2.nombre, T2.apellidos, T3.descripcion,T4.descripcion as des FROM cobros T1 INNER JOIN alumnos T2 ON T1.id_alumno=T2.Id INNER JOIN conceptos T3 ON T1.id_concepto=T3.id_concepto INNER JOIN cuentas T4 ON T1.id_cuenta=T4.id_cuenta WHERE TRIM(T1.fecha) > $fecha1 OR TRIM(T1.fecha) < $fecha2 ORDER BY T1.id_cuenta");

$cuenta = mysql_query($query_cuenta, $conexion) or die(mysql_error());
$row_cuenta = mysql_fetch_assoc($cuenta);
$totalRows_cuenta = mysql_num_rows($cuenta);



Sin embargo siempre me sale el contenido de todos los registros, no me realiza ningun filtro entre ese rango de fechas que tecleo en los 2 campos de texto (fecha_inicial y fecha_final).


Muchas gracias:(

maravert
16-11-2009, 22:44:15
Listo, ya le encontre

Utilice esto:



where t1.fecha between '$fecha1' and '$fecha2'


se los dejo para quien le pueda ayudar


Hasta pronto

:)