Foros del Web » Programando para Internet » PHP »

rango de fechas

Estas en el tema de rango de fechas en el foro de PHP en Foros del Web. buenos días tengo un problema con el rango de fechas y es el siguiente resulta que yo tengo una consulta en la cual el usuario ...
  #1 (permalink)  
Antiguo 22/10/2010, 10:09
 
Fecha de Ingreso: octubre-2010
Ubicación: suba
Mensajes: 15
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta rango de fechas

buenos días tengo un problema con el rango de fechas y es el siguiente resulta que yo tengo una consulta en la cual el usuario digita dos fechas y lo que hago es que cuando le doy el botón buscar se dirija hacia la base de datos y me taiga todas las fechas que se encuentren dentro del rango establecido por el usuario hasta ahí va bien, pero al momento de extraer los datos con el primer select me bota que la base de datos esta vacía y si la ejecuto con el segundo select obviamente comentariando el primero me bota Unknown column 'fecha1' in 'where clause'.necesito de su valiosa colaboración ya que de esto dependen muchas cosas muchas gracias.

la tabla se llama td_tickets y el campo a consultar es date.

el código es el siguiente

<?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 !";
}


?>
  #2 (permalink)  
Antiguo 22/10/2010, 10:11
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: rango de fechas

$fechaini=fecha1;
$fechafin=fecha2;

que son o de donde vienen fecha1 y fecha2?
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #3 (permalink)  
Antiguo 22/10/2010, 10:21
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: rango de fechas

estan consultando por campos que no existen en la base de datos
preguntas por fecha1 y fecha y no los tienes en la base de datos
lo que deberias guardar es el rango de las fechas no los nombre y comprar date con el string de la fecha

$fecha1 = "2010-01-01";
$fecha2 = "2010-10-22";

$result= mysql_query("SELECT * FROM td_tickets WHERE dname LIKE '%ESTAFETA%' AND (date >= '$fecha1' and date<= '$fecha2')")or die(
  #4 (permalink)  
Antiguo 22/10/2010, 11:31
 
Fecha de Ingreso: octubre-2010
Ubicación: suba
Mensajes: 15
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: rango de fechas

Gracias pero ahora aparece que la base de datos esta vacia que hagooooooooo
  #5 (permalink)  
Antiguo 22/10/2010, 11:44
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: rango de fechas

Código PHP:
if(mysql_num_rows($result) > 0){
    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 !";

  #6 (permalink)  
Antiguo 22/10/2010, 12:21
 
Fecha de Ingreso: octubre-2010
Ubicación: suba
Mensajes: 15
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: rango de fechas

NO LA VERDAD SIGUIE EN LO MISMO QUE PENA MOLESTAR TANTO

AQUI VA EL CODIGO


<?php

$link = mysql_connect("localhost", "root", "");
mysql_select_db("helpdesk",$link)or die ("Verifique la Base de Datos");
$fecha1 = "2010-01-01";
$fecha2 = "2010-12-22";

//$result= mysql_query("SELECT * FROM td_tickets WHERE date between :fecha1 and :fecha2",$link)or die( mysql_error() );
// $result= mysql_query("SELECT * FROM td_tickets WHERE dname LIKE '%ESTAFETA%' AND date('fecha1,d-M-Y H:m:s') ORDER BY date asc",$link)or die( mysql_error() );
//$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)or die( mysql_error() );
//$result= mysql_query("SELECT * FROM td_tickets WHERE date('1789',fecha1) >= 1 AND date('2050',fecha2) <= 0")or die( mysql_error() );
//$result= mysql_query("Select * form td_tickets where date >=1 fecha1 and fecha <= 0 fecha2")or die( mysql_error() );
//$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 >= '$fecha1' and date<= '$fecha2')")or die( mysql_error() );
if(mysql_num_rows($result) > 0){
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 !";
}
?>

Y SIgUE CON LO MISMO LA BASE DE DATOS ESTA VACIA
  #7 (permalink)  
Antiguo 22/10/2010, 12:53
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: rango de fechas

estas seguro que los rangos de búsqueda estan bien ?

si haces la consulta en el phpmyadmin te da resultados

SELECT * FROM td_tickets WHERE dname LIKE '%ESTAFETA%' AND date >= '2010-01-01' and date<= '2010-12-22'
  #8 (permalink)  
Antiguo 22/10/2010, 13:10
 
Fecha de Ingreso: octubre-2010
Ubicación: suba
Mensajes: 15
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: rango de fechas

eso es lo que tambien eh tratado de hacer pero no se como

Etiquetas: fechas, rango
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 04:29.