Consultar datos por medio de una fecha con php

Y si me puede ayudar necesito realizar un formulario que se conecte a una base de datos en el cual yo digite una fecha especificada a otra y que me muestre las fechas que se encuentran dentro de ese rango digitado me explico es algo como por ejemplo
digite de que fecha a que fecha desea que se le muestren los datos :
Fecha1 hasta fecha2 BUSCAR
Cuando yo le de bucar me tiene que botar los datos que se encuentren dentro de ese rango de fechas guardadas en la base de datos

1 respuesta

Respuesta
1
OK, pero cuales son tus dudas, ¿sabes por donde empezar?, tienes conocimientos de PHP ¿?...
Te doy un ejemplo a ver:
http://www.webtaller.com/manual-php/formularios_PHP.php
pues tengo un poco de conocimiento de php,se por donde empezar pero lo ne no tengo muy en claro es como filtrar datos con las fechas que ingresa el usuario yo tengo el siguiente codigo y no me devuelve nada
 <?php
        $link = mysql_connect("localhost", "root", "");
         mysql_select_db("helpdesk",$link)or die ("Verifique la Base de Datos");
         $fechaini=fecha1;
         $fechafin=fecha2;
         // $query="SELECT * FROM td_tickets WHERE date between :fecha1 and :fecha2";
         $query= "SELECT * FROM td_tickets WHERE date('date,d-M-Y H:m:s')  ORDER BY date asc";
         //$query=  "SELECT * FROM td_tickets WHERE [date] >=&format('date,d-M-Y H:m:s')  AND [date] <=&format ('date,d-M-Y H:m:s') ";;
         //$query=("SELECT * FROM td_tickets WHERE DATEDIFF('1789',date) < 0 AND DATEDIFF('2000',date) > 0");
         $result=  mysql_query($query,$link)or die (mysql_error());
         if ($row=mysql_fetch_row($result)){
         echo "
<table border= '3'\n";
         echo "<tr>
\n";
         echo "
<td><b>id</b></td>
\n";
         echo "
<td><b>dname</b></td>
\n";
         echo "
<td><b>mname</b></td>
\n";
         echo "
<td><b>amname</b></td>
\n";
         echo "
<td><b>email</b></td>
\n";
         echo "
<td><b>subject</b></td>
\n";
         echo "
<td><b>message</b></td>
\n";
         echo "
<td><b>date</b></td>
\n";
         echo "
<td><b>close_reason</b></td>
\n";
         echo "
</tr>
\n";
         do{
             echo "
<tr>
\n";
             echo "
<td>".$row["id"]."</td>
\n";
             echo "
<td>".$row["dname"]."</td>
\n";
             echo "
<td>".$row["mname"]."</td>
\n";
             echo "
<td>".$row["amname"]."</td>
\n";
             echo "
<td>".$row["email"]."</td>
\n";
             echo "
<td>".$row["subject"]."</td>
\n";
             echo "
<td>".$row["message"]."</td>
\n";
             echo "
<td>".date("d-M-Y H:m:s ",$row["date"])."</td>
\n";
             echo "
<td>".$row["close_reason"]."</td>
\n";
             echo "
</tr>
\n";
//id,dname,mname,amname,email,subject,message,date
         }while ($row = mysql_fetch_array($result));
          }else{
              echo "¡ La base de datos está vacia !";
          }
?>
y como se puede observar ningun select que tengo me funciona : por favor que estoy haciendo mal
En el query; WHERE date('date, d-M-Y H:m:s') no lo estas comparando con nada, por eso no te sale nada, le dices Dame los datos DONDE date=""... pero no le estás preguntando que la compare...
bueno gracias por la pronta respuesta, creo que ya lo hice pero me sale lo siguiente no se como hacerlo estoy re perdido Query was empty
y asi es como lo tengo
<?php
        $link = mysql_connect("localhost", "root", "");
         mysql_select_db("helpdesk",$link)or die ("Verifique la Base de Datos");
         $fechaini=fecha1;
         $fechafin=fecha2;
         //$result=  mysql_query("SELECT * FROM td_tickets WHERE date between :fecha1 and :fecha2",$link);
         //$result=  mysql_query("SELECT * FROM td_tickets WHERE date('date,d-M-Y H:m:s')  ORDER BY date asc",$link);
         $result=  mysql_query("SELECT * FROM td_tickets WHERE [date] >= 1 &format('date,d-M-Y H:m:s')  AND [date] <= 0 &format ('date,d-M-Y H:m:s') ",$link);;
         // $result=  mysql_query("SELECT * FROM td_tickets WHERE date('1789',date) >= 1 AND date('2050',date) <= 0");
         //$result=  mysql_query("Select * form td_tickets where date between >=1 fecha1 and fecha <= 0 fecha2");
         $result=  mysql_query($query,$link)or die (mysql_error());
          if($row= mysql_fetch_array($result)){
         echo "
<table border= '3'\n";
         echo "<tr>
\n";
         echo "
<td><b>id</b></td>
\n";
         echo "
<td><b>dname</b></td>
\n";
         echo "
<td><b>mname</b></td>
\n";
         echo "
<td><b>amname</b></td>
\n";
         echo "
<td><b>email</b></td>
\n";
         echo "
<td><b>subject</b></td>
\n";
         echo "
<td><b>message</b></td>
\n";
         echo "
<td><b>date</b></td>
\n";
         echo "
<td><b>close_reason</b></td>
\n";
         echo "
</tr>
\n";
         do{
             echo "
<tr>
\n";
             echo "
<td>".$row["id"]."</td>
\n";
             echo "
<td>".$row["dname"]."</td>
\n";
             echo "
<td>".$row["mname"]."</td>
\n";
             echo "
<td>".$row["amname"]."</td>
\n";
             echo "
<td>".$row["email"]."</td>
\n";
             echo "
<td>".$row["subject"]."</td>
\n";
             echo "
<td>".$row["message"]."</td>
\n";
             echo "
<td>".date("d-M-Y H:m:s ",$row["date"])."</td>
\n";
             echo "
<td>".$row["close_reason"]."</td>
\n";
             echo "
</tr>
\n";
//id,dname,mname,amname,email,subject,message,date
         }while ($row = mysql_fetch_array($result));
          }else{
              echo "¡ La base de datos está vacia !";
          }
//id,tkey,did,dname,mname,amid,mname,email,subject,priority,message,date,lastreply,lastreplystaff,lastmid,lastmname,amid,ipadd,replies,votes,rating,ratingtotal,notes,estatus,closemid,closemname,closereason,autoclose,attachid,cdfields,guest,guestemail FROM td_tickets",$link);
?>
<?php
        $link = mysql_connect("localhost", "root", "");         mysql_select_db("helpdesk",$link)or die ("Verifique la Base de Datos");         $fechaini=fecha1;         $fechafin=fecha2;         //$result=  mysql_query("SELECT * FROM td_tickets WHERE date between :fecha1 and :fecha2",$link);         //$result=  mysql_query("SELECT * FROM td_tickets WHERE date('date,d-M-Y H:m:s')  ORDER BY date asc",$link);         $result=  mysql_query("SELECT * FROM td_tickets WHERE [date] >= 1 &format('date,d-M-Y H:m:s')  AND [date] <= 0 &format ('date,d-M-Y H:m:s') ",$link);;         // $result=  mysql_query("SELECT * FROM td_tickets WHERE date('1789',date) >= 1 AND date('2050',date) <= 0");         //$result=  mysql_query("Select * form td_tickets where date between >=1 fecha1 and fecha <= 0 fecha2");
         $result=  mysql_query($query,$link)or die (mysql_error());          if($row= mysql_fetch_array($result)){         echo "
<table border= '3'\n";         echo "<tr>
\n";         echo "
<td><b>id</b></td>
\n";         echo "
<td><b>dname</b></td>
\n";         echo "
<td><b>mname</b></td>
\n";         echo "
<td><b>amname</b></td>
\n";         echo "
<td><b>email</b></td>
\n";         echo "
<td><b>subject</b></td>
\n";         echo "
<td><b>message</b></td>
\n";         echo "
<td><b>date</b></td>
\n";         echo "
<td><b>close_reason</b></td>
\n";         echo "
</tr>
\n";         do{             echo "
<tr>
\n";             echo "
<td>".$row["id"]."</td>
\n";             echo "
<td>".$row["dname"]."</td>
\n";             echo "
<td>".$row["mname"]."</td>
\n";             echo "
<td>".$row["amname"]."</td>
\n";             echo "
<td>".$row["email"]."</td>
\n";             echo "
<td>".$row["subject"]."</td>
\n";             echo "
<td>".$row["message"]."</td>
\n";             echo "
<td>".date("d-M-Y H:m:s ",$row["date"])."</td>
\n";             echo "
<td>".$row["close_reason"]."</td>
\n";             echo "
</tr>
\n";//id,dname,mname,amname,email,subject,message,date
         }while ($row = mysql_fetch_array($result));
          }else{              echo "¡ La base de datos está vacia !";          }
//id,tkey,did,dname,mname,amid,mname,email,subject,priority,message,date,lastreply,lastreplystaff,lastmid,lastmname,amid,ipadd,replies,votes,rating,ratingtotal,notes,estatus,closemid,closemname,closereason,autoclose,attachid,cdfields,guest,guestemail FROM td_tickets",$link);
        ?>
Es mejor que ejecutes estas consultas desde el phpmyadmin, te dará el fallo concreto, de todas formas en:
td_tickets WHERE [date] >
Por que no pones el nombre del campo en vez de [date]... tipo td_tickets.fecha, o algo similar...
gracias bueno yo ya cambie el codio y pues tengo dos select el primero me sale que la base de datos esta vacia y el segundo sale (Unknown column 'fecha1' in 'where clause'),y lo del date es por que asi se llama el campo de la tabla donde se encuentran guardados los datos
para una mejor ilustracion aqui una imagen 
"/> 
y ahora el codigo
<?php
        $link = mysql_connect("localhost", "root", "");
         mysql_select_db("helpdesk",$link)or die ("Verifique la Base de Datos");
         $fechaini=fecha1;
         $fechafin=fecha2;
//$result=  mysql_query("SELECT * FROM td_tickets WHERE dname LIKE '%ESTAFETA%' AND   date >= '07-sep-2010' AND date <= '09-sep-2010'")or die( mysql_er
<?php
        $link = mysql_connect("localhost", "root", "");
         mysql_select_db("helpdesk",$link)or die ("Verifique la Base de Datos");
         $fechaini=fecha1;
         $fechafin=fecha2;
         //$result=  mysql_query("SELECT * FROM td_tickets WHERE dname LIKE '%ESTAFETA%' AND   date >= '07-sep-2010' AND date <= '09-sep-2010'")or die( mysql_error() );
        $result=  mysql_query("SELECT * FROM td_tickets WHERE dname LIKE '%ESTAFETA%' AND date  ($fechaini >= '01-01-1789' and $fechafin<= '01-01-2050')")or die( mysql_error() );
         if($row= mysql_fetch_array($result)){
         echo "
<table border= '3'\n";
         echo "<tr>
\n";
         echo "
<td><b>id</b></td>
\n";
         echo "
<td><b>dname</b></td>
\n";
         echo "
<td><b>mname</b></td>
\n";
         echo "
<td><b>amname</b></td>
\n";
         echo "
<td><b>email</b></td>
\n";
         echo "
<td><b>subject</b></td>
\n";
         echo "
<td><b>message</b></td>
\n";
         echo "
<td><b>date</b></td>
\n";
         echo "
<td><b>close_reason</b></td>
\n";
         echo "
</tr>
\n";
         do{
             echo "
<tr>
\n";
             echo "
<td>".$row["id"]."</td>
\n";
             echo "
<td>".$row["dname"]."</td>
\n";
             echo "
<td>".$row["mname"]."</td>
\n";
             echo "
<td>".$row["amname"]."</td>
\n";
             echo "
<td>".$row["email"]."</td>
\n";
             echo "
<td>".$row["subject"]."</td>
\n";
             echo "
<td>".$row["message"]."</td>
\n";
             echo "
<td>".date("d-M-Y H:m:s ",$row["date"])."</td>
\n";
             echo "
<td>".$row["close_reason"]."</td>
\n";
             echo "
</tr>
\n";
         }while ($row = mysql_fetch_array($result));
          }else{
              echo "¡ La base de datos está vacia !";
          }
?>
ayuda por favor que pena molestar tanto
Y bien??
nooooo nada de de nada no se que sucede jummmmm aqui va de nuevo el codigo
<?php
        $link = mysql_connect("localhost", "root", "");
         mysql_select_db("helpdesk",$link)or die ("Verifique la Base de Datos");
         $fecha1 = "1970-01-01 00:00:00";
         $fecha2 = "2038-01-01 00:00:00";
$result= mysql_query("SELECT * FROM td_tickets WHERE dname LIKE '%ESTAFETA%' AND  date >= '1970-01-01 00:00:00' and date<= '2038-01-01 00:00:00'")or die( mysql_error() );
 if(mysql_num_rows($result)>1){
    echo "
<table border= '3'\n";
    echo "<tr>
\n";
    echo "
<td><b>id</b></td>
\n";
    echo "
<td><b>dname</b></td>
\n";
    echo "
<td><b>mname</b></td>
\n";
    echo "
<td><b>amname</b></td>
\n";
    echo "
<td><b>email</b></td>
\n";
    echo "
<td><b>subject</b></td>
\n";
    echo "
<td><b>message</b></td>
\n";
    echo "
<td><b>date</b></td>
\n";
    echo "
<td><b>close_reason</b></td>
\n";
    echo "
</tr>
\n";
    while($row = mysql_fetch_array($result)){
        echo "
<tr>
\n";
        echo "
<td>".$row["id"]."</td>
\n";
        echo "
<td>".$row["dname"]."</td>
\n";
        echo "
<td>".$row["mname"]."</td>
\n";
        echo "
<td>".$row["amname"]."</td>
\n";
        echo "
<td>".$row["email"]."</td>
\n";
        echo "
<td>".$row["subject"]."</td>
\n";
        echo "
<td>".$row["message"]."</td>
\n";
        echo "
<td>".date("d-M-Y H:m:s ",$row["date"])."</td>
\n";
        echo "
<td>".$row["close_reason"]."</td>
\n";
        echo "
</tr>
\n";
    }
    echo "
</table>
";
}else{
    echo "¡ La base de datos está vacia !";
}
?>
cual sera el posible error necesito ayuda urgente de verdad
No debes comparar fechas asi, mira este ejemplo:
http://www.webtutoriales.com/tutoriales/programacion/php/comparar-fechas.73.html
Te estás mareando con el ejemplo creo y ya no ves nada!, jjaj... no te preocupes, lo de las fechas no es facil!... asegurate que los campos de la BD son lo que tienen que ser, y analiza el ejemplo que te paso
bueno muchas gracias lo tomare en cuenta y en verdad si me estoy matando la cabeza por  que lo que me caeria mejor es realizar un filtrado de datos pero con una sola fecha

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas