PHP - como buscar por fechas con php y MySql

 
Vista:

como buscar por fechas con php y MySql

Publicado por krist (1 intervención) el 22/01/2009 22:16:15
Saludos.
necesito algo de AYUDA y aunke suene a frase trillada en los foros: ES URGENTE!!
ASI KE LES AGRADEZCO DE ANTEMANO SU PRONTA AYUDA

tengo en un formulario de busquedas <html> un select option de esta forma:
<select name="Fecha">
<option value="1">Cualquiera
</option><option value="2">Hoy y ayer
</option><option value="3">Ultimos 3 días
</option><option value="4">Ultimos 7 días
</option><option value="5">Ultimos 14 días
</option><option value="6">Ultimos 21 días
</option><option value="7">Ultimos 31 días
</option></select>

dicho formulario envia los datos a una pagina php ke de acuerdo a la opcion que escoja en el select , este utilizará un query distinto...
aki dejo parte del codigo:

$Dep = $_POST["Dep"];
$Time = $_POST["Time"];
$Carr = $_POST["Carr"];
$Type = $_POST["Type"];
$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
mysql_select_db("oferta",$conexion) or die("Problemas en la seleccion de la base de datos");
switch ($Time)
{
case 1:
$Query = "SELECT * FROM oferta WHERE Dep = Dep_Empre AND Carr = Carr_Ofer Type LIKE Horario_Trabajo";
break;

case 2:
$Query = "SELECT * FROM oferta WHERE Dep = Dep_Empre AND Fecha_Ofer BETWEEN 'Fecha 1' AND 'Fecha 2' AND Carr = Carr_Ofer AND Type LIKE Horario_Trabajo";
break;

case 3:
$Query = "SELECT * FROM oferta WHERE Dep = Dep_Empre AND Fecha_Ofer BETWEEN 'Fecha 1' AND 'Fecha 2' AND Carr = Carr_Ofer AND Type LIKE Horario_Trabajo";
break;

case 4:
$Query = "SELECT * FROM oferta WHERE Dep = Dep_Empre AND Fecha_Ofer BETWEEN 'Fecha 1' AND 'Fecha 2' AND Carr = Carr_Ofer AND Type LIKE Horario_Trabajo";
break;

case 5:
$Query = "SELECT * FROM oferta WHERE Dep = Dep_Empre AND Fecha_Ofer BETWEEN 'Fecha 1' AND 'Fecha 2' AND Carr = Carr_Ofer AND Type LIKE Horario_Trabajo";
break;

case 6:
$Query = "SELECT * FROM oferta WHERE Dep = Dep_Empre AND Fecha_Ofer BETWEEN 'Fecha 1' AND 'Fecha 2' AND Carr = Carr_Ofer AND Type LIKE Horario_Trabajo";
break;

case 7:
$Query = "SELECT * FROM oferta WHERE Dep = Dep_Empre AND Fecha_Ofer BETWEEN 'Fecha 1' AND 'Fecha 2' AND Carr = Carr_Ofer AND Type LIKE Horario_Trabajo";
break;

}

$conexion or die("Problemas en el select".mysql_error());
$result = mysql_query ($Query);
if ($row = mysql_fetch_array($result)){

do {

echo "<table bgcolor='#FFF8DC'style='z-index:7'> ";

echo "<tr> ";

echo "<td><b>Oferta: ".$row["Oferta"]."</b></td></tr> ";

echo "<tr> ";

echo "<td><b>Descripción: "$row["Describe"]."</b></td> ";

echo "<tr> ";

echo "<td><b>Ubicación: "$row["Ubic_Ofer"]."</b></td> ";

echo "<tr> ";

echo "<td><b>Localidad: "$row["Local_Ofer"]."</b></td> ";

echo "<tr> "

echo "<td><b>Salario: "$row["Salario_Ofer"]."</b></td> ";

echo "<tr> ";

echo "<td><b>Inicio: ".$row["Ini_Ofer"]."</b></td> ";

echo "<tr> ";

echo "<td><b>Duración:".$["Dur_Ofer"]."</b></td> ";

echo "<tr> "

echo "<td><b>Tiempo: ".$row["Tiempo_Ofer"]."</b></td> ";

echo "<tr> "

echo "</tr> ";

} while ($row = mysql_fetch_array($result));

echo "</table> style="margin-left: 50">echo "</table> ";

} else {

echo "¡ La base de datos está vacia !";

}

?>

mis preguntas son la siguientes:

1-
de que forma podria enviar el dato seleccionado en el select-option al formulaio php, ya ke solo está recibiendo los datos de los campos texto pero el dato del select no lo recibe??

2-
de que forma podria realizar un Query que busque en la base de datos de acuerdo a los rangos expuestos anteriormente??, ya que no tengo ni la mas remota idea de como usar los rangos de las fechas pues debería usar la fecha del sistema supongo pero no se como hacerlo.
nuevamente LES AGRADEZCO DE ANTEMANO SU RESPUESTA

~$>su apt-get install -f asi deberia resolverse todo en la vida
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como buscar por fechas con php y MySql

Publicado por Bruno Chávez (4 intervenciones) el 23/01/2009 18:06:36
Hola!!

Mira, veo dos cosas, no se como estas realizando tus operaciones en el SQL, pero si lo que estas es tratando de comparar valores de php entonces te hacen falta los $, ejemplo:

$Query = "SELECT * FROM oferta WHERE Dep = $Dep_Empre AND Fecha_Ofer BETWEEN 'Fecha 1' AND 'Fecha 2' AND Carr = Carr_Ofer AND Type LIKE $Horario_Trabajo";

no se, algo asi... pero bueno esa es otra cosa... pero en cuestion de fechas, te puedo decir que yo tuve el mismo problema, y le pregunte al Sr. Google y me aparecio una funcion muy util que convierte de las fechas y que me permite realizar lo que necesitas, aqui te las pongo:

function cambiaMySQL($fecha) {
ereg( "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $fecha, $mifecha);
$lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1];
return $lafecha;
}

function cambiaNormal($fecha) {
ereg("([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})", $fecha, $mifecha);
$lafecha=$mifecha[3]."/".$mifecha[2]."/".$mifecha[1];
return $lafecha;
}

Cuando tu necesitas enviar una fecha al mySQL simplemente llamas a la funcion cambiaMySQL(Fecha que quieres buscar) y listo, y cuando leas el campo simplemente la conviertes y con CambiaNormal...

tu Query podria ser:

SELECT * FROM oferta WHERE (Fecha1 < '" . cambiaMySQL(date()) . "' AND Fecha2 > '" . cambiaMySQL(date()) . "........"

En fin, espero que esto te sirva...

Saludos
Bruno Chávez
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar