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

Base de datos con phpmyadmin para pedir citas

Estas en el tema de Base de datos con phpmyadmin para pedir citas en el foro de Mysql en Foros del Web. A ver si me pueden orientar: Estoy haciendo una pequeña pagina donde un cliente se registra y con su usuario, selecciona tres campos: 1) Tipo ...
  #1 (permalink)  
Antiguo 24/05/2011, 14:01
Usuario no validado
 
Fecha de Ingreso: diciembre-2009
Ubicación: Bogotá
Mensajes: 462
Antigüedad: 14 años, 11 meses
Puntos: 18
Base de datos con phpmyadmin para pedir citas

A ver si me pueden orientar:

Estoy haciendo una pequeña pagina donde un cliente se registra y con su usuario, selecciona tres campos:

1) Tipo cita
2) Fecha
3) hora.
El tipo de cita lo tengo en una tabla con la lista de c/u
La fecha la seleccionan desde un javascript / css que me encontré en internet que asigna la fecha con formato 2011-05-24
La hora, la seleccionan de una lista que puse enn una tabla.
A ver: se supone que el fin de esto es que al asignarse una fecha y hora de cita por dia, nadie mas la pueda seleccionar, o si lo hace queno se pueda grabar, no se, el método es lo de menos, pero que se puede conseguir eso.
Por hora como es una empresa pequeña y no van a tener muchas citas, le "vendí" la idea al cliente de que no bloqueramos la misma fecha y hora, ya que si en eldia van 4 personas y todos eligen , la cita a las 8 am, los pueden atender sus 4 asesores.
Esto es cierto y vendí la idea, pero no es lo lógico. Por eso pido ayuda, para poder optimizar el servicio.
Por ahora tengo esto:
tablas:
citas
horas
munic (municipio=ciudad)
registrados
tipotramite
Quien me hecha una mano. Cómo es mejor organizar esta bd y cómo puedo conseguir el resultado?
No se me ocurre, pues la idea es compleja y tampoco se si me sirve como tengo lo de selección de fechas y de hora, .....gracias.
  #2 (permalink)  
Antiguo 25/05/2011, 01:08
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Base de datos con phpmyadmin para pedir citas

Sólo es cuestion de que el selector de horas no dependa directamente de la tabla horas si no de una query que muestre solo las horas libres....

Algo así

SELECT hora FROM horas WHERE hora NOT IN (SELECT hora FROM citas WHERE fecha=$fecha)

el script debe tratar el error que se producirá en el caso que aún no haya ninguna cita ese dia.

Debes ofrecer el selector de hora cuando el usuario ya ha elegido una fecha...

Si la concurrencia crece mucho, mucho quizas habria que tomar alguna otra medida, larga de explicar, para evitar colisiones.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 25/05/2011 a las 01:16
  #3 (permalink)  
Antiguo 25/05/2011, 05:53
Usuario no validado
 
Fecha de Ingreso: diciembre-2009
Ubicación: Bogotá
Mensajes: 462
Antigüedad: 14 años, 11 meses
Puntos: 18
Respuesta: Base de datos con phpmyadmin para pedir citas

Pues mira, tu explicación me ha abierto un mundo de posibilidades. Voy a empezar por alguno de esos lados, pero gracias.
  #4 (permalink)  
Antiguo 25/05/2011, 09:41
Usuario no validado
 
Fecha de Ingreso: diciembre-2009
Ubicación: Bogotá
Mensajes: 462
Antigüedad: 14 años, 11 meses
Puntos: 18
Respuesta: Base de datos con phpmyadmin para pedir citas

Me puedes presentar un pequeño boceto de cómo haría para "ofrecer el selector de hora cuando el usuario ya ha elegido una fecha"?

O para hacerlo es lo que hiciste entre los paréntesis?

Gracias, estoy trabajando esto...
  #5 (permalink)  
Antiguo 25/05/2011, 10:39
Usuario no validado
 
Fecha de Ingreso: diciembre-2009
Ubicación: Bogotá
Mensajes: 462
Antigüedad: 14 años, 11 meses
Puntos: 18
Respuesta: Base de datos con phpmyadmin para pedir citas

Ya lo encontré lo de la pregunta aneterior,...para futuras referencias foristas........
http://www.original-design.es/tutoriales/tutocombo.php

....sigo haciendole...a esto, cualquier cosa te molesto.
  #6 (permalink)  
Antiguo 25/05/2011, 10:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Base de datos con phpmyadmin para pedir citas

Bueno... no es un problema de base de datos en ese punto, sino de programación.
En definitiva se resuelve con el lenguaje usado (yo trabajo más en VB.Net), por lo que se escapa del tema de este foro...
En fin, es un buen aporte.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 26/05/2011, 07:56
Usuario no validado
 
Fecha de Ingreso: diciembre-2009
Ubicación: Bogotá
Mensajes: 462
Antigüedad: 14 años, 11 meses
Puntos: 18
Respuesta: Base de datos con phpmyadmin para pedir citas

Ya he avanzado mucho, tengo ya toda mi bd cuadrada para lograr mi objetivo: Pero tengo un dilema aqui:

La explicación de quim fv me llevó a modificar mi bd para bien y ahora estoy ante algo muy bueno, ya logré gran parte (por no decir todo) lo que necesitaba pero necesito colaboración con esto:

Los selectores o listas fucionan bien, pero no he podido hacer que se envie el formulario. Porque si le quito el "onchange="submit()" a la lista, deha de funcionar la lista dinámica es decir, el juego........ y si le meto el codigo de dreamweaver para enviar formulario pues funciona menos, porque lo que hace es que cuando selecciono la segunla lista de menú , se envia el formulario antes de presionar el botón.

Cómo puedo enviar este formulario despues de la segunda lista presionando el botón?

<?php require_once('Connections/citasjoya.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

mysql_select_db($database_citasjoya, $citasjoya);
$query_rc_tipo = "SELECT * FROM tablatipotramites";
$rc_tipo = mysql_query($query_rc_tipo, $citasjoya) or die(mysql_error());
$row_rc_tipo = mysql_fetch_assoc($rc_tipo);
$totalRows_rc_tipo = mysql_num_rows($rc_tipo);

$colname_rc_hora = "-1";
if (isset($_POST['idtramite'])) {
$colname_rc_hora = $_POST['idtramite'];
}
mysql_select_db($database_citasjoya, $citasjoya);
$query_rc_fecha = "SELECT * FROM tablafechas";
$rc_fecha = mysql_query($query_rc_fecha, $citasjoya) or die(mysql_error());
$row_rc_fecha = mysql_fetch_assoc($rc_fecha);
$totalRows_rc_fecha = mysql_num_rows($rc_fecha);

$colname_rc_hora = "-1";
if (isset($_POST['idfecha'])) {
$colname_rc_hora = $_POST['idfecha'];
}
mysql_select_db($database_citasjoya, $citasjoya);
$query_rc_hora = sprintf("SELECT idhora, hora FROM tablahoras WHERE idfecha = %s", GetSQLValueString($colname_rc_hora, "int"));
$rc_hora = mysql_query($query_rc_hora, $citasjoya) or die(mysql_error());
$row_rc_hora = mysql_fetch_assoc($rc_hora);
$totalRows_rc_hora = mysql_num_rows($rc_hora);
?>
<!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>Joya Pabón - Sitio para solicitud de tablacitas</title><link rel="shortcut icon" href="favicon.ico" />
<link type="text/css" rel="stylesheet" href="css/joyapabon.css" />
</head>

<body>
<div align="center">
<table width="1024" border="0">
<tr>
<td width="507"><a href="index.php" target="_self"><img src="images/logo_joya.png" width="249" height="70" alt="Joya Pabón" /></a></td>
<td width="507">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="middle">&nbsp;</td>
<td align="center" valign="middle">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="middle"><p class="textogrande">Hola , <br />
Saca tu cita!</p>
<p class="textomediano">Selecciona la fecha y tablahoras en que quieres visitarnos.</p>
<p class="textomediano">Para nosotros, eres lo mas importante.</p></td>
<td align="center" valign="middle"><div align="center"><form id="form1" name="form1" method="post" action="">
<table width="60" border="0">
<table width="194" border="0">
<tr>
<td class="etiquetas">Fecha</td>
<td><select name="idfecha" class="campos" id="idfecha" onchange="submit()">
<option value="" <?php if (!(strcmp("", $_POST['idfecha']))) {echo "selected=\"selected\"";} ?>>Fecha</option>
<?php
do {
?>
<option value="<?php echo $row_rc_fecha['idfecha']?>"<?php if (!(strcmp($row_rc_fecha['idfecha'], $_POST['idfecha']))) {echo "selected=\"selected\"";} ?>><?php echo $row_rc_fecha['fecha']?></option>
<?php
} while ($row_rc_fecha = mysql_fetch_assoc($rc_fecha));
$rows = mysql_num_rows($rc_fecha);
if($rows > 0) {
mysql_data_seek($rc_fecha, 0);
$row_rc_fecha = mysql_fetch_assoc($rc_fecha);
}
?>
</select></td>
</tr>
<tr>
<td class="etiquetas">Hora</td>
<td><select name="idhora" class="campos" id="idhora">
<option value="" <?php if (!(strcmp("", $_POST['idhora']))) {echo "selected=\"selected\"";} ?>>Hora</option>
<?php
do {
?>
<option value="<?php echo $row_rc_hora['idhora']?>"<?php if (!(strcmp($row_rc_hora['idhora'], $_POST['idhora']))) {echo "selected=\"selected\"";} ?>><?php echo $row_rc_hora['hora']?></option>
<?php
} while ($row_rc_hora = mysql_fetch_assoc($rc_hora));
$rows = mysql_num_rows($rc_hora);
if($rows > 0) {
mysql_data_seek($rc_hora, 0);
$row_rc_hora = mysql_fetch_assoc($rc_hora);
}
?>
</select></td>
</tr>
<tr>
<td class="etiquetas">&nbsp;</td>
<td><input type="submit" name="enviar" id="enviar" value="Enviar" />
</tr>
</table>
<tr>
</form>
</td>
</tr>
<tr>
<td align="left" valign="middle">&nbsp;</td>
<td align="center" valign="middle">&nbsp;</td>
</tr>
<tr>
<td height="219" colspan="2" align="center" valign="bottom">&nbsp;</td>
</tr>
</table>
</div>
<tr>
<td height="230" colspan="2" align="center" valign="bottom">&nbsp;</td>
</tr>
</body>
</html>
<?php
mysql_free_result($rc_fecha);

mysql_free_result($rc_hora);

mysql_free_result($rc_tipo);
?>
  #8 (permalink)  
Antiguo 26/05/2011, 08:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Base de datos con phpmyadmin para pedir citas

Cita:
Los selectores o listas fucionan bien, pero no he podido hacer que se envie el formulario. Porque si le quito el "onchange="submit()" a la lista, deha de funcionar la lista dinámica es decir, el juego........ y si le meto el codigo de dreamweaver para enviar formulario pues funciona menos, porque lo que hace es que cuando selecciono la segunla lista de menú , se envia el formulario antes de presionar el botón.
Nada de esto tiene que ver con la base de datos.
MySQL no genera ni administra formularios. Esto es tema de programación.

Espera que muevan el post a donde mejor te lo pueden responder.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 26/05/2011, 08:45
Usuario no validado
 
Fecha de Ingreso: diciembre-2009
Ubicación: Bogotá
Mensajes: 462
Antigüedad: 14 años, 11 meses
Puntos: 18
Respuesta: Base de datos con phpmyadmin para pedir citas

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Nada de esto tiene que ver con la base de datos.
MySQL no genera ni administra formularios. Esto es tema de programación.

Espera que muevan el post a donde mejor te lo pueden responder.
Si, ya lo postee en php. Esque al inicio la pregunta era diferente. Gracias.

Etiquetas: pedir, phpmyadmin, cita
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 08:56.