Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Seleccionar una fecha de un rango de fechas

Estas en el tema de Seleccionar una fecha de un rango de fechas en el foro de Mysql en Foros del Web. Hola amigos. Muy buenos dias, soy nuevo en el foro y quiero hacer una consulta. Estoy desarrollando un sistema de atención médica y estoy creando ...
  #1 (permalink)  
Antiguo 27/04/2012, 08:40
 
Fecha de Ingreso: abril-2012
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
Seleccionar una fecha de un rango de fechas

Hola amigos.
Muy buenos dias, soy nuevo en el foro y quiero hacer una consulta.
Estoy desarrollando un sistema de atención médica y estoy creando el módulo de asignación de citas médicas.

Los datos para generar la agenda son
Fecha y hora inicial
Fecha y hora final
intervalo: corresponde al numero de minutos que se le asignara a cada atención, si digito 15, significa que se asignara una cita cada 15 minutos

Otro campo muy importante es la seleccion de un dia de la semana.

todo esta funcionando, faltan algunas validaciones, pero quiero solucionar primero lo de la insección a la tabla.

en mi tabla tengo 2 campos
fecha y ffinal
sus valores correspondientes podrian ser 10:00:00 10:15:00
EL PROBLEMA RADICA EN:
si quiero insertar una cita que va desde las 10:05:00 hasta las 10:10:00 el sistema NO DEBE DEJAR HACERLO ya que ese rango de tiempo esta ocupado por la cita 10:00:00 10:15:00

************************************************** ************

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Crear Calendario</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="javascript" type="text/javascript" src="js/functiones.js"></script>
<link href="css/calendario.css" type="text/css" rel="stylesheet">
<script src="js/calendar.js" type="text/javascript"></script>
<script src="js/calendar-es.js" type="text/javascript"></script>
<script src="js/calendar-setup.js" type="text/javascript"></script>
</head>

<body>
<form name="form" method="post" action="">

<!--****************************************-->
</script>
Fecha Inicial &nbsp;<input type="text" size="8" name="fi" id="ingreso" value="<?php echo date("Y-m-d") ?>" />
<img s src="ima/calendario.png" width="16" height="16" border="0" title="Fecha Inicial" id="lanzador">
<!-- script que define y configura el calendario-->
<script type="text/javascript">
Calendar.setup({
inputField : "ingreso", // id del campo de texto
ifFormat : "%Y-%m-%d", // formato de la fecha que se escriba en el campo de texto
button : "lanzador" // el id del botón que lanzará el calendario
});
</script>
<!--****************************************-->
&nbsp;&nbsp;&nbsp;&nbsp
</script>
Fecha Final &nbsp;<input type="text" size="8" name="ff" id="ingreso_2" value="<?php echo date("Y-m-d") ?>" />
<img src="ima/calendario.png" " width="16" height="16" border="0" title="Fecha Final" id="lanzador_2">
<!-- script que define y configura el calendario-->
<script type="text/javascript">
Calendar.setup({
inputField : "ingreso_2", // id del campo de texto
ifFormat : "%Y-%m-%d", // formato de la fecha que se escriba en el campo de texto
button : "lanzador_2" // el id del botón que lanzará el calendario
});
</script>
<!--****************************************-->
&nbsp;&nbsp;&nbsp;&nbsp<br /><br />
Hora Inicial &nbsp;<input type="text" name="hi" size="2" />
<input type="text" name="mi" size="2" />
Hora Final &nbsp;<input type="text" name="hf" size="2" />
<input type="text" name="mf" size="2"/>
<input type="hidden" value="si" name="grabar">
<br /><br />
&nbsp;&nbsp;&nbsp;&nbsp<input type="text" name="int" size="2" /><br /><br />
<input name="dias[]" type="checkbox" value="Monday">lun-Monday<br />
<input name="dias[]" type="checkbox" value="Tuesday">mar-Tuesday<br />
<input name="dias[]" type="checkbox" value="Wednesday">mir-Wednesday<br />
<input name="dias[]" type="checkbox" value="Thursday">jue-Thursday<br />
<input name="dias[]" type="checkbox" value="Friday">vie-Friday<br />
<input name="dias[]" type="checkbox" value="Saturday">sab-Saturday<br />
<input name="dias[]" type="checkbox" value="Friday">dom-Friday<br />
<input name="send" type="submit" id="send" value="Enviar!">
</form>
<?php
if (isset($_POST["grabar"]) and $_POST["grabar"] = "s")
{
$fechaInicio = strtotime($_POST["fi"]);
$fechaFin= strtotime($_POST["ff"]);
$hi= ($_POST["hi"]);
$mi= ($_POST["mi"]);
$horaInicio = strtotime($hi. ":" .$mi);
$hf= ($_POST["hf"]);
$mf= ($_POST["mf"]);
$horaFin = strtotime($hf. ":" .$mf);
$intervalo = $_POST["int"] * 60;

for ($i=$horaInicio;$i<$horaFin;$i+=$intervalo) {
for ($j=$fechaInicio;$j<=$fechaFin;$j+=86400)
{
/****************************************/
$ndia = date('l', $j);
if (isset($_POST['dias']))
{
for($k=0; $k<count($_POST['dias']); $k++)
{
if($ndia == $_POST['dias'][$k])
{

($_POST['dias'][$k] . "<Br>") ;
$l = $i;


echo $datot = date('Y-m-d', $j). " " .date('H:i:s', $i). "<br>";
echo $df1 = date('Y-m-d', $j). " " .date('H:i:s', $l+=$intervalo) ."<br><br>";
//************************************************** *********************
$con=mysql_connect("localhost","root","");
$bd="bd_siips";

$sql = "select fecha from calendario where fecha = '$datot' and ffinal = '$df1'";
$res = mysql_db_query($bd,$sql,$con);
if(mysql_num_rows($res)==0)
{
$query="insert into calendario values ('null','$datot','$df1')";
$resp = mysql_db_query($bd,$query,$con);

}else
{
echo "Horario no disponible";
exit;
}
}
}
}
}
/*******************************************/

}
}
?>
</body>
</html>


************************************************** ************
dejo el codigo por si alguien me puede colaborar

de antemano muchas gracias
  #2 (permalink)  
Antiguo 27/04/2012, 14:41
 
Fecha de Ingreso: enero-2010
Ubicación: Estelí, Nicaragua
Mensajes: 157
Antigüedad: 14 años, 3 meses
Puntos: 8
Respuesta: Seleccionar una fecha de un rango de fechas

Hola,
De manera rapida podria decirte esta sentencia a ver si cumple con lo que necesitas, basicamente seria preguntar si hay un registro que este comprendido entre el lapso de la cita que quieres introducir.

por ejemplo:

Código MySQL:
Ver original
  1. select count(*) from calendario
  2. where '$dato'>=fecha and '$df1'<fechafinal

donde $dato seria la hora de incio que se quiere la nueva cita y $df1 seria la hora en que finaliza la cita nueva, por lo tanto preguntamos si ya hay una cita comprendida en este lapso, si regresa un valor es que ya existe la cita sino no hay citas y podria guardarse la nueva.

ojala y te oriente.
  #3 (permalink)  
Antiguo 27/04/2012, 15:15
 
Fecha de Ingreso: abril-2012
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
Respuesta: Seleccionar una fecha de un rango de fechas

Cita:
Iniciado por LENINCASCO Ver Mensaje
Hola,
De manera rapida podria decirte esta sentencia a ver si cumple con lo que necesitas, basicamente seria preguntar si hay un registro que este comprendido entre el lapso de la cita que quieres introducir.

por ejemplo:

Código MySQL:
Ver original
  1. select count(*) from calendario
  2. where '$dato'>=fecha and '$df1'<fechafinal

donde $dato seria la hora de incio que se quiere la nueva cita y $df1 seria la hora en que finaliza la cita nueva, por lo tanto preguntamos si ya hay una cita comprendida en este lapso, si regresa un valor es que ya existe la cita sino no hay citas y podria guardarse la nueva.

ojala y te oriente.
hola LENINCASCO
Agradezco mucho tu interes
fue de gran ayuda tu ejemplo
el codigo quedo asi
$sql = "select * from calendario where not (ffinal < '$df1') or ('$datot' < fecha)";

Hice varias pruebas y quedo funcionando bien

Nuevamente, muchas gracias por tu ayuda

Etiquetas: fecha, php, query, rango, select, sql, tabla, campos
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 20:41.