Foros del Web » Programando para Internet » PHP »

consulta en base de datos

Estas en el tema de consulta en base de datos en el foro de PHP en Foros del Web. buenas tardes. soy nuevo en el foro y no se si escribo en el lugar correcto. estoy diseñando una web en php y estoy bloqueado ...
  #1 (permalink)  
Antiguo 26/07/2013, 08:40
 
Fecha de Ingreso: julio-2013
Mensajes: 4
Antigüedad: 10 años, 8 meses
Puntos: 0
consulta en base de datos

buenas tardes.
soy nuevo en el foro y no se si escribo en el lugar correcto.
estoy diseñando una web en php y estoy bloqueado con una consulta a mi base de datos.
explico el tema:
es una agenda de citas para una peluqueria
el caso es que querria hacer una consulta a la bd para ver si la hora y el dia estan ocupados si lo estan activar un alert y si no lo esta continuar con el proceso
espero me ayuden
se que no es complicado pero a veces lo facil se hace dificil y no doy con la solucion
gracias de antemano
  #2 (permalink)  
Antiguo 26/07/2013, 08:58
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: consulta en base de datos

no es más que un SELECT count() con un WHERE para verificar si hay registros en el día especifico, consulte un manual de SQL.

postee el código que tenga adelantado para ayudarle si le falla
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 26/07/2013, 09:04
 
Fecha de Ingreso: julio-2013
Mensajes: 4
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: consulta en base de datos

<?php
// Se incluye el miniscript de tratamiento de fechas
include ("inc/fechas.php");
// Se incluye el miniscript que abre la base de datos.
include ("inc/usarBD.php");
// Se crea la hora, a partir de las horas y minutos establecidos en el formulario de nueva cita.
$horaDeCita=$_POST["hora"].":".$_POST["minutos"];
// Se monta la consulta para grabar una nueva cita.
$consulta="INSERT INTO citas (diaCita, horaCita, asuntoCita) VALUES ('$fechaEnCurso','$horaDeCita','".$_POST["asunto"]."');";
// Se ejecuta la consulta.
$hacerConsulta=mysql_query ($consulta,$conexion);
// Se liberan recursos y se cierra la base de datos.
@mysql_free_result($hacerConsulta);
mysql_close($conexion);
?>


ese es el codigo que tengo
  #4 (permalink)  
Antiguo 26/07/2013, 09:10
Avatar de yamsoft  
Fecha de Ingreso: julio-2013
Ubicación: Maracaibo
Mensajes: 27
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: consulta en base de datos

Como dice maycolalvarez, lo podes hacer con un COUNT() o también con la función mysql_num_rows() si gustas...

El ejemplo de la consulta seria:

Código PHP:
Ver original
  1. $seekPrevCita    = mysql_query("SELECT * FROM citas WHERE diaCita='$variablePostCita' AND horaCita='$variablePostHora'");
  2.  
  3. if(mysql_num_rows($seekPrevCita)>0)
  4. {
  5.       echo "Existe una cita pauta para el dia $variablePostCita a la hora $variablePostHora";
  6. }
  7. else
  8. {
  9.      //cotinuas con el proceso por aca
  10. }

Por ese ejemplo te puedes ir guiando... saludos :)
  #5 (permalink)  
Antiguo 26/07/2013, 09:33
 
Fecha de Ingreso: julio-2013
Mensajes: 4
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: consulta en base de datos

Perdonad pero sigue sin funcionarme


<html>
<head>
<title>Grabar una nueva cita</title>

</head>

<body>
<?php
// Se incluye el miniscript de tratamiento de fechas
include ("inc/fechas.php");
// Se muestra la fecha en curso.
echo ("CITA PARA EL DÍA: ".$diaActual." del ".$mesActual." de ".$annioActual.salto);


?>
<form action="" method="post" name="formularioNuevaCita" id="formularioNuevaCita">
<input type="hidden" name="fechaEnCurso" id="fechaEnCurso" value="<?php echo($fechaEnCurso); ?>">
<table width="500" border="0" cellspacing="0" cellpadding="2">
<tr>
<td width="73">Hora:</td>
<td width="427">Cita:</td>
</tr>
<tr>
<td><select name="hora" id="hora" >


<?php
for ($i=10;$i<20;$i++){
echo ("<OPTION VALUE='");
printf ("%02s",$i);
echo ("'>");
printf("%02s",$i);
echo ("</OPTION>".salto);
}
?>
</select></td>
<td rowspan="3"><textarea name="asunto" cols="50" rows="5" id="asunto"></textarea></td>
</tr>
<tr>
<td>Minutos:</td>
</tr>
<tr>
<td><select name="minutos" id="minutos">
<?php
for ($i=0;$i<59;$i+=15){
echo ("<OPTION VALUE='");
printf ("%02s",$i);
echo ("'>");
printf("%02s",$i);
echo ("</OPTION>".salto);
}
?>
</select></td>
</tr>
</table>
<table width="500" height="44" border="0" cellpadding="0" cellspacing="0">
<tr align="center">



<td width="248"><input type="submit" name="enviar" value="Grabar">




<?php

if(isset($_POST['enviar']))

{
$seekPrevCita = mysql_query("SELECT * FROM citas WHERE diaCita='$fechaEnCurso' AND horaCita='$horaDeCita.'");

if(mysql_num_rows($seekPrevCita)>0)
{
echo "Existe una cita pauta para el dia $variablePostCita a la hora $variablePostHora";
}
else
{


//cotinuas con el proceso por aca


// Se monta la consulta para grabar una nueva cita.
$consulta="INSERT INTO citas (diaCita, horaCita, asuntoCita) VALUES ('$fechaEnCurso','$horaDeCita','".$_POST["asunto"]."');";
// Se ejecuta la consulta.
$hacerConsulta=mysql_query ($consulta,$conexion);
}
}

?>




</td>

<td width="252"><input name="anularCita" type="button" id="anularCita" value="Cancelar" onClick="javascript:mandar(false);"></td>
</tr>
</table>
</form>


</body>
</html>
  #6 (permalink)  
Antiguo 26/07/2013, 09:39
Avatar de yamsoft  
Fecha de Ingreso: julio-2013
Ubicación: Maracaibo
Mensajes: 27
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: consulta en base de datos

Seria estupendo que usaras el Highlight para poder diferenciar mejor el código que escribes...

Lo único raro que pude notar es la variable $horaDeCita. ¿De donde la sacas? No la veo declarada por ninguna parte, asumo que $fechaEnCurso la obtienes desde include ("inc/fechas.php");, además de eso en tu consulta al final de esa variable hay un punto.

Código PHP:
Ver original
  1. $seekPrevCita = mysql_query("SELECT * FROM citas WHERE diaCita='$fechaEnCurso' AND horaCita='$horaDeCita.'");

Revisa bien y me cuentas como te fue :)
  #7 (permalink)  
Antiguo 26/07/2013, 09:46
 
Fecha de Ingreso: julio-2013
Mensajes: 4
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: consulta en base de datos

usaria el Highlight si supiera como hacerlo, ademas asi podrias ayudarme mejor ya q es algo que me urge
la variable '$horaDeCita' viene de otra pagina
  #8 (permalink)  
Antiguo 26/07/2013, 09:53
Avatar de yamsoft  
Fecha de Ingreso: julio-2013
Ubicación: Maracaibo
Mensajes: 27
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: consulta en base de datos

Cuando vayas a escribir una respuesta, del combo llamado Highlight selecciona el lenguaje que vas a colorear :) asi de simple...

No entiendo el porque sacas la variable $horaDeCita de otra página si lo que necesitas verificar el la fecha y la hora que el usuario introduce en el formulario anterior ¿O me equivoco?

Queriendo decir que tu consulta quedaría de la siguiente manera:

Código PHP:
Ver original
  1. if(isset($_POST['enviar']))
  2. {
  3.     extract($_POST);  con esto conviertes $_POST['vars'] = $vars;
  4.  
  5.     $checkHora    = $hora . ':' . $minutos;
  6.     $seekPrevCita = mysql_query("SELECT * FROM citas WHERE diaCita='$fechaEnCurso' AND  horaCita='$checkHora.'");
  7.  
  8. if(mysql_num_rows($seekPrevCita)>0)
  9. {
  10. echo "Existe una cita pauta para el dia $variablePostCita a la hora $variablePostHora";
  11. }
  12. else
  13. {
  14.  
  15.  
  16. //cotinuas con el proceso por aca
  17.  
  18.  
  19. // Se monta la consulta para grabar una nueva cita.
  20. $consulta="INSERT INTO citas (diaCita, horaCita, asuntoCita) VALUES ('$fechaEnCurso','$horaDeCita','".$_POST["asunto"]."');";
  21. // Se ejecuta la consulta.
  22. $hacerConsulta=mysql_query ($consulta,$conexion);
  23. }
  24. }

Imagino que la columna horaCita en tu base de datos es de tipo TIME ¿No?

Saludos!

Etiquetas: Ninguno
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 02:42.