Guía para hacer lista de turnos

Tengo problemas para armar una lista de turnos... La misma se arma en base a una fecha que selecciono de un calendario y de un profesional que selecciono de un combobox.
Partiendo de la base, yo puedo guardar turnos en la BD...
Lo que no se como hacer es armar la lista de acuerdo a los turnos que tengo en la BD.
La idea es armarlo de acuerdo a la hora, pero no se como hacer para situar cada turno en su hora correspondiente.
Ademas necesito que los intervalos de hora de los turnos puedan modificarse, por ejemplo que se den cada 10 0 15 min, etc.
Así que no se si hacer que la lista de turnos quede fija o se arme con algún ciclo for parecido al que he realizado...
-------------------------------------
<?php
  $hora=10;
for ($i=1; $i<=15; $i++)
 {
  $hora= $hora  + 15;
  echo " 
<tr>
";
  echo " 
<td nowrap='nowrap'><a href=\"javascript:popUp('nuevo_turno.php?hora=$hora')\">Nuevo Turno</a></td>
";
  echo " 
<td width='1%'>$hora</td>
";
  echo " 
<td></td>
";
  echo " 
<td> </td>
";
  echo " 
<td> </td>
";
  echo " 
<td> </td>
";
  echo " 
<td> </td>
";
  echo " 
</tr>
";
 }
 ?>
-------------------------------------
La variable $hora lo he puesto para probar nada más, pero en realidad lo que necesito es que inicie a las 9am y termine a las 12 y luego de 16hs a 20hs, el cual es el horario del consultorio.
Entonces lo que realmente necesito es armar la tabla en base a los turnos almacenados en la bd pero situados cada uno en su horario correspondiente.
Respuesta
1
Me gustaría saber que es lo que ya tienes desarrollado, si puedes subirlo a algún hosting para verlo y decirte que es lo que puedes hacer para que tengas el mejor funcionamiento, yo en lo particular tengo un sistema checador en el cual manejo diversos turnos para cada departamento acá en las oficinas de la policía, también existen diferentes horarios entre el mismo departamento la verdad hay muchas formas de hacer ese tipo de funcionalidades, contáctame [email protected]
www.flops.com.mx
Hola experto, acá te paso lo que eh hecho hasta ahora...
Con esto eh logrado que me muestre el turno guardado de acuerdo al doctor y la fecha, el problema esta en armar la lista de turnos de acuerdo al horario que le corresponde a cada uno y ademas agregar los turnos que están vacíos ya que obviamente estos no se cargan en la BD.
<?php
require_once "/../../includes/cnx.php";
$doctor4= $_GET['doctor'];
$fecha4=$_GET['f_date'];
if ($fecha4!=""){
$fech=explode('-',$fecha4);
$fecha4=$fech[2].'-'.$fech[1].'-'.$fech[0];
}
?>
<!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=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<table width="700" border="1" bordercolorlight="#666666" align="center" bgcolor="#FFFFFF">
<tr class="cabecera">
<td align="center" width="1%">Acci&oacute;n</td>
<td align="center">Hora</td>
<td nowrap="nowrap" align="center">Apellido</td>
<td nowrap="nowrap" align="center">Nombre</td>
<td align="center">Motivo</td>
<td align="center">Tipo</td>
<td nowrap="nowrap" align="center" width="1%">Primer visita?</td>
</tr>
<?php
 if($doctor4!="" && $fecha4!=""){
 if($doctor4 && $fecha4){
  $consulta="SELECT * FROM agenda_turno WHERE cod_prof=$doctor4 and fecha='$fecha4'";
  $turnos=mysql_query($consulta,$con);
 while($fila = mysql_fetch_array($turnos)){
  $cod_turno=$fila['cod_turno'];
  $cod_prof=$fila['cod_prof'];
  $nombre=$fila['nombre'];
  $apellido=$fila['apellido'];
  $fecha=$fila['fecha'];
  $fech=explode('-',$fecha);
  $fecha=$fech[2].'-'.$fech[1].'-'.$fech[0];
  $hora=$fila['hora'];
  $motivo=$fila['motivo'];
  $tipo=$fila['tipo'];
  $visita=$fila['visita'];
  echo " 
<tr>
";
  echo " 
<td nowrap='nowrap'><a href=\"javascript:popUp('nuevo_turno.php?hora=$hora')\">Nuevo Turno</a></td>
";
  echo " 
<td width='1%'>$hora</td>
";
  echo " 
<td>$apellido</td>
";
  echo " 
<td>$nombre</td>
";
  echo " 
<td>$motivo</td>
";
  echo " 
<td>$tipo</td>
";
  echo " 
<td>$visita</td>
";
  echo " 
</tr>
";
}
}
}
 ?>
</table>
</body>
</html>
-----------------------------------------------------------
Desde ya muchísimas gracias por tu ayuda...
Emanuel...
La verdad colega no alcanzo a asimilar lo que requieres, intuyo que intentas imprimir los turnos almacenados de cierto doctor en determinado día, esos datos ya los traes en la consulta que lanzas a la BD y lo que te hace falta es darle el formato adecuado a la salida en HTML o quizás reanalizar la estructura de la base de datos, seria idóneo que escribieras información más concreta y de alta relevancia para encontrar la mejor solución, creo que estas apunto de encontrarla, seguiré al pendiente!
[email protected] || www.flops.com.mx
Hola, te pido disculpas por no expresarme bien ahora veamos si te puedo explicar mejor...
Yo tengo que hacer la lista de los turnos en base a un profesional que selecciono de un combobox y de una fecha que selecciono de un calendario, en base a esto tengo que armar la lista de los turnos pero mi problema esta en los horarios de los turnos porque yo tengo que colocar cada turno en su horario correspondiente y esto es lo que no logro realizar por ej:
Hora Paciente
09:00 Pepito
09:30 Menganito
09:45
10:00
10:15 Carlos
Es decir que aparte de ubicar los turnos que tengo dado también tengo que hacer que los turnos que están disponibles me los muestre como vacío...
Te paso más o menos lo que es la BD para que me digas si es necesario que agregue o modifique algún campo:
Cod_turno   AUTOINCREMENT
cod_prof
Nombre
Apellido
Fecha
Hora
Motivo (si es por carnet o consulta)
Tipo (si es con obra social o particular)
Visita (si es su primer visita)
Espero haya sido un poco más claro...
Gracias
Emanuel.
Hola experto, te pido disculpas por volver a molestarte, pero estoy trabadisimo con esto que lo estoy usando para recorrer el array de turnos y verificar cada 15 min si hay un turno dado para formar la lista de turnos
$intervalo = "0:15";
for ($hora = "9:00"; $hora < "11:59"; $hora += $intervalo) {
Sé que no se puede trabajar así con los valores pero los estuve trabajando con explode()
Y no logro que funcione
Creo que de esta forma seria lo más simple para hacerlo, para luego buscar en array de turnos si hay alguno que empiece entre: hora y hora + intervalo - 0:01 y si no lo hay que me tire el turno vacío...
Agradecería tu ayuda...
Emanuel.
<?php
/* strtotime devuelve el valor timestamp de la cadena que hayas pasado como parametro
* si tu deseas incrementar en minutos los valores para comparar solo multiplica por 60
* cada minuto que desees incrementar, yo utilice 900 en el incremento del ciclo for
* esto representa 15 minutos, la cadena que le pase tu la tomaras de los turnos de los medicos
* tal como viene de la base de datos ya que es justo ese formato no requiere conversiones.
* */
$horaInicial = strtotime("2011-03-11 09:00");
$horaFinal = strtotime("2011-03-11 18:00");
for($i=0;$horaInicial<=$horaFinal;$i++){
echo date("d/m/Y H:i",$horaInicial).'<br>';
$horaInicial += 900;
}
?>
<?php/* strtotime devuelve el valor timestamp de la cadena que hayas pasado como parametro * si tu deseas incrementar en minutos los valores para comparar solo multiplica por 60 * cada minuto que desees incrementar, yo utilice 900 en el incremento del ciclo for * esto representa 15 minutos, la cadena que le pase tu la tomaras de los turnos de los medicos * tal como viene de la base de datos ya que es justo ese formato no requiere conversiones. * */$horaInicial = strtotime("2011-03-11 09:00");$horaFinal = strtotime("2011-03-11 18:00");
for($i=0;$horaInicial<=$horaFinal;$i++){echo date("d/m/Y H:i",$horaInicial).'<br>';$horaInicial += 900;}?>
Creo que esto te ayudara mucho colega, seguimos en contacto!
Muchas gracias por tu respuesta, me ayudo muchísimo...
Voy a seguir trabajando con esto y cualquier cosa si no te molesta te vuelvo a contactar...
Gracias nuevamente.
Emanuel

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas