Foros del Web » Programando para Internet » PHP »

problema para realizar busqueda por fechas

Estas en el tema de problema para realizar busqueda por fechas en el foro de PHP en Foros del Web. Hola amigos ccomo estan? yo aca dejandoles otra consulta q es la sgte: estoy haciendo un filtro de busqueda por fecha, es decir las visitas ...
  #1 (permalink)  
Antiguo 10/02/2009, 22:35
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Hola amigos ccomo estan? yo aca dejandoles otra consulta q es la sgte:

estoy haciendo un filtro de busqueda por fecha, es decir las visitas q se han realizado desde hasta tal fecha, esto lo estoy haciendo con un calendario desde el cual selecciono la fecha y se me llena el campo con la fecha seleccionada, y al hacer click en buscar no me funciona, y la consulta sql la ejecuto en el pgadmin y ahi si me resulta la busqueda, mi consulta sql es la siguiente:

SELECT nino.id_nino, nino.nombre_nino, nino.apellido_nino, visitante.nombre_visitante, visitante.apellido_visitante, visitante.tipo_visitante, visita.nino_presente, visita.tipo_visita, visita.comentario_visita, visita.fecha_visita from visita left join nino on nino.id_nino = visita.id_nino left join visitante on visita.id_visitante = visitante.id_visitante WHERE visita.fecha_visita BETWEEN '2009-02-05' and '2009-02-10'



y la q no me funciona desde php esta asi:

SELECT nino.id_nino, nino.nombre_nino, nino.apellido_nino, visitante.nombre_visitante, visitante.apellido_visitante, visitante.tipo_visitante, visita.nino_presente, visita.tipo_visita, visita.comentario_visita, visita.fecha_visita from visita left join nino on nino.id_nino = visita.id_nino left join visitante on visita.id_visitante = visitante.id_visitante WHERE visita.fecha_visita BETWEEN '".$_POST['fecha_calendario']."' and '".$_POST['fecha_visita']."'

aqui dejo mi codigo php porfavor agradeceria mucho su ayuda amigos

Código PHP:

if($_POST['Buscar'])
{
    //*********************BUSCAR POR ID NINO*****************************
    
    if ($_POST['fecha_calendario'] && $_POST['fecha_visita'])
    
    {
    
    
    
    
    
 
    //FIN PAGINADO*******************
        $SELECT_VISITA_NINO = "select nino.id_nino, nino.nombre_nino, nino.apellido_nino, visitante.nombre_visitante, visitante.apellido_visitante, visitante.tipo_visitante, visita.nino_presente, visita.tipo_visita, visita.comentario_visita, visita.fecha_visita from visita left join nino on nino.id_nino = visita.id_nino left join visitante on visita.id_visitante = visitante.id_visitante where visita.fecha_visita between '".$_POST['fecha_calendario']."' and '".$_POST['fecha_visita']."'";
        
        //PAginado ".$_POST['edad_nino']."


        //termino paginado
        
        
        $resultado_visita = pg_exec ($conn, $SELECT_VISITA_NINO);
        if(pg_num_rows($resultado_visita)==0)
        {    
            echo "<tr>";
            echo "<td>";
            echo "<font color='red'><strong>La consulta no arrojo resultados</strong></font>";
            echo "</td>";
            echo "</tr>";
            //echo $SELECT_EDAD_NINO;
        }
        
        else
        {
        
            
            
            
        
            
            while ($row_visita = pg_fetch_array($resultado_visita)) 
            {
                ?>
               
                
                
                
                
               
                <table width="1469" height="29" style="solid #FF0000; color:#000099;">
    <tr style="background:#99CCCC;">
      <td width="42" height="23"><strong>
      <center>C.I.P</center></strong></td>
      <td width="120"><center><strong>Nombre</strong></center></td>
      <td width="120"><strong><center>Apellido</center></strong></td>
      <td width="60"><strong><center>Edad</center></strong></td>
      <td width="136"><strong>Direccion</strong></td>
      
      <td width="97"><strong><center>Sector</center></strong></td>

      
      <td width="80"><strong><center>Comuna</center></strong></td>
      
      <td width="78"><strong><center>Fono Fijo</center></strong></td>
      
      <td width="78"><strong><center>Fono Movil</center></strong></td>
      
      <td width="110"><strong><center>Fono Referencia</center></strong></td>
      
      <td width="97"><center><strong>Escuela/Liceo</strong></center></td>
      
      <td width="125"><strong><center>Curso</center></strong></td>
      
      <td width="68"><strong><center>Repitente</center></strong></td>
      
      <td width="198"><strong><center>Motivo Repitencia</center></strong></td>
             
     
      
      
    </tr>
    
                
                
                
                <?php
                
                
                
                
                
                
echo "</td>";
                echo 
"<td><center>".$row_visita[1]."</center></td>";
                echo 
"<td><center>".$row_visita[2]."</center></td>";
                echo 
"<td><center>".$row_visita[3]."</center></td>";
                echo 
"<td><center>".$row_visita[0]." Año(s)"."</center></td>";
                echo 
"<td><center>".$row_visita[4]."</center></td>";
                echo 
"<td><center>".$row_visita[5]."</center></td>";
                echo 
"<td><center>".$row_visita[6]."</center></td>";
                echo 
"<td><center>".$row_visita[7]."</center></td>";
                echo 
"<td><center>".$row_visita[8]."</center></td>";
                echo 
"<td><center>".$row_visita[9]."</center></td>";
                echo 
"<td><center>".$row_visita[10]."</center></td>";
                
                echo 
"<td><center>".$row_visita[12]."</center></td>";
                echo 
"<td><center>".$row_visita[13]."</center></td>";
                echo 
"<td><center>".$row_visita[14]."</center></td>";
                
                
//echo "<td font color='0000FF'>".$row[10]."</font></td>";
                //echo "<td font color='0000FF'>".$row[11]."</font></td>";
                //echo "<td font color='0000FF'>".$row[12]."</td>";    
                
                        
                
            
}
        }
        
        }
    }
no se en q estoy fallando ya q le hago click al boton buscar y nisikiera me sale el mensaje de aviso q no se a encontrado nada, y como dije mas arriba ejecute la consulta en el pgadmin y me la realiza correctamente, pero desde php ya no se en q estoy fallando he probado de varias maneras (en la consulta sql q ejecuto en el pg admin las fechas las inserto de la misma manera en las q inserto desde php) porfavor rogaria de su ayuda amigos esto me tiene estancado agradeceria mucho su ayuda amigos

de antemano gracias.... bye

Última edición por GatorV; 10/02/2009 a las 23:05
  #2 (permalink)  
Antiguo 10/02/2009, 23:17
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: problema para realizar busqueda por fechas

Revisaste si estan llegando correctamente los valores de $_POST?
  #3 (permalink)  
Antiguo 11/02/2009, 00:01
 
Fecha de Ingreso: enero-2009
Mensajes: 12
Antigüedad: 15 años, 3 meses
Puntos: 0
Exclamación Respuesta: problema para realizar busqueda por fechas

yo hize una consulta parecida ala tuya aqui te dejo el codigo en php:

Código PHP:
include_once("lib/accesodatos/conexion.php");

$codigo=$_POST['g'];
$fechaInicio=$_POST['dateArrival'];
$fechaFin=$_POST['dateArrival2'];

$sql="

select 

docRec.dore_id,
DATE_FORMAT(docRec.dore_fecha,'%d-%m-%Y') as dore_fecha,
docRec.dore_reglog,
ger.ger_nombre,
doc.doc_nombre,
docRec.dore_serie 

from  

documentorecibido docRec ,
documento doc,
gerencia ger 

where 

doc.doc_id=docRec.dore_doc 
and ger.ger_id = docRec.dore_ger
and `dore_ger` = '$codigo'
and `dore_fecha` BETWEEN '$fechaInicio' AND '$fechaFin'  "
;

 
$bd=Db::getInstance(); 
 
$res =$bd->ejecutar($sql); 

while (
$row =   mysql_fetch_array($res)) {
echo(
$row["dore_id"]);
.
.
.


siempre realizando la prueba que las variables que estas mandando lleguen correctamente


Un Saludo.
  #4 (permalink)  
Antiguo 11/02/2009, 11:15
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: problema para realizar busqueda por fechas

hola amigos probe con el ejemplo q dejo skillone, pero no me resulto sigue sin tomarme valores las dos variables de las fechas, probe inicializando ambas variables con una fecha fija para realizar la busqueda y solo asi me funciona, pero no me sirve ya no se q hacer para q ambas variables me capture los datos ingresado desde el calendario.... ¿como puedo hacer para q me pesque??
ya inicialize asi:

$fecha_inicio = $_POST['fecha_calendario'];
$fecha_fin = $_POST['fecha_visita'];


y probe la consulta sql de ambas formas, pero nada, probe la consulta sql asi:

select nino.id_nino, nino.nombre_nino, nino.apellido_paterno_nino, nino.apellido_materno_nino, visitante.nombre_visitante, visitante.apellido_visitante, visitante.tipo_visitante, visita.nino_presente, visita.tipo_visita, visita.comentario_visita, visita.fecha_visita from visita left join nino on nino.id_nino = visita.id_nino left join visitante on visita.id_visitante = visitante.id_visitante where visita.fecha_visita between '".$_POST['fecha_calendario']."' and '".$_POST['fecha_visita']."'


y asi:

select nino.id_nino, nino.nombre_nino, nino.apellido_paterno_nino, nino.apellido_materno_nino, visitante.nombre_visitante, visitante.apellido_visitante, visitante.tipo_visitante, visita.nino_presente, visita.tipo_visita, visita.comentario_visita, visita.fecha_visita from visita left join nino on nino.id_nino = visita.id_nino left join visitante on visita.id_visitante = visitante.id_visitante where visita.fecha_visita between '$fecha_inicio' and '$fecha_fin'";


pero nada no me toma el valor de la fecha ingresada desde el calendario como lo puedo hacer??? porfavor de verdad agradeceria su ayuda/orientacion please se los ruego!!!! de antemano gracias.... bye.
  #5 (permalink)  
Antiguo 11/02/2009, 11:39
 
Fecha de Ingreso: enero-2009
Mensajes: 12
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: problema para realizar busqueda por fechas

ya has probado que esta tomando correctamente esos datos (fechas) y que estas mandando por el metodo POST?
  #6 (permalink)  
Antiguo 11/02/2009, 11:49
Avatar de a83
a83
 
Fecha de Ingreso: noviembre-2005
Ubicación: Santiago de chile
Mensajes: 637
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: problema para realizar busqueda por fechas

pegale una mirada a esto y saca tus dudas

Código PHP:
<?php
function cambiaf_a_mysql ($fecha){
    if(
$fecha!='')
    {
        
ereg"([0-9]{1,2})-([0-9]{1,2})-([0-9]{4})"$fecha$mifecha);
        
$lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1];
        return 
$lafecha;
    }
    else
    {
        return 
false;
    }    
}



$desde=$_POST['desde'];
$hasta=$_POST['hasta'];
$Numero=$_POST['Numero'];
$fechas="";
$IDGuiaPOST="";
if(
$desde!=false && $hasta!=false)
{
    
$fechas="'".$desde."' <= p1.Fecha and p1.Fecha<='".$hasta."' and ";
}
if(
$Numero!='')
{
    
$IDGuiaPOST="p1.Numero=".$Numero." and ";
}

$desde=cambiaf_a_mysql($desde);
$hasta=cambiaf_a_mysql($hasta);
echo 
"<script>alert(\"$desde,$hasta\")</script>";
//consultas sql
$consulta="select p1.Fecha ,p1.Numero, p2.Cantidad, p3.Nombre as cliente, p4.Nombre as producto 
from tblguias as p1, tblguiasdetalle as p2, tblclientes as p3, tblproducto as p4
where "
.$fechas." ".$IDGuiaPOST."
p1.id_Cliente=p3.id_Cliente
and p2.id_Produccion=p4.id_Producto
and p1.id_Guia=p2.id_Guia order by p1.Fecha"
;
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 11:50.