Foros del Web » Programando para Internet » PHP »

varificar datos en BD antes de ser enviados.

Estas en el tema de varificar datos en BD antes de ser enviados. en el foro de PHP en Foros del Web. Hola, soy nuevo en el foro pero de aqui he resulto muchas dudas, mi problema es el siguiente: Necesito validar informacion de un formulario, que ...
  #1 (permalink)  
Antiguo 25/12/2011, 01:56
 
Fecha de Ingreso: diciembre-2011
Mensajes: 9
Antigüedad: 12 años, 11 meses
Puntos: 0
varificar datos en BD antes de ser enviados.

Hola, soy nuevo en el foro pero de aqui he resulto muchas dudas, mi problema es el siguiente:

Necesito validar informacion de un formulario, que esta no se encuentre ya en una base de datos, por ejemplo el salon, el dia, la hora de inicio y la hora final, ya tengo la conulta SQL, pero lo que necesito es que antes de enviar la informacion a la BD me muestre una aviso de que si esta ocupado el salon a cierta hora tal dia, este es mi sql me falta optimizarlo un poco pero funciona, necesito orientacion de como lo puedo realizar, muchas gracias.

$sqld1 = "SELECT * FROM horario where dia1 = '$dia'";

$resd1 = mysql_query($sqld1) or die ("La consulta fallo :@".mysql_error());

if (mysql_num_rows($resd1) == 0){

echo "No se encontro el dia 1";
//header("Location: index.html");
exit;

}else{

$sqls = "SELECT * FROM horario where lugarh = '$salon'";
$ress = mysql_query($sqls) or die ("La consulta fallo en el salon".mysql_error());

if (mysql_num_rows($ress) == 0 ){

echo "No se encontro el salon en el dia 1";
exit();

}else{

$sqlh = "SELECT * FROM horario WHERE LUGARH = '$salon' AND HRI1 >= '$hri' AND HRF1 <= '$hrf'";
$resh = mysql_query($sqlh) or die ("La consulta fallo en la hora");

if (mysql_num_rows($resh) == 0 ){

echo "Se encontro la hora en el salon en el dia 1";
exit();

}else{

echo "Cuidado todo se traslapa";
exit();

}

}

}
  #2 (permalink)  
Antiguo 26/12/2011, 17:14
 
Fecha de Ingreso: diciembre-2011
Mensajes: 9
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: varificar datos en BD antes de ser enviados.

Nadie me puede ayudar o estoy en el foro incorrecto ??
  #3 (permalink)  
Antiguo 26/12/2011, 17:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: varificar datos en BD antes de ser enviados.

Me parece que es el foro correcto, sin embargo ¿puedes decirnos exactamente cual es el problema?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 26/12/2011, 19:50
 
Fecha de Ingreso: diciembre-2011
Mensajes: 9
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: varificar datos en BD antes de ser enviados.

Muchas gracias por contestar pateketrueke, mira lo que pasa es tengo que hacer un sistema de horarios para una escuela, y quieren que cuando den de alta una materia con su respectivo horario no se translapen las horas en un mismo salon por ejemplo El salon 23 esta ocupado de 13:00 a las 15:00 entonces cuando den de alta otra materia por ejemplo que quieren dar de alta otra materia en El salon 23 de las 14:00 a las 16:00 mandarles un aviso de que ya se encuentra ocupado El salon en el horario de 13:00 a las 15:00, el problema es que necesito realizar esta validacion antes de enviar los datos. Espero me puedan ayudar y tambien que me haya explicado, muchas gracias por tu atencion.
  #5 (permalink)  
Antiguo 27/12/2011, 07:52
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: varificar datos en BD antes de ser enviados.

a ver, creo que te entendi, podrías intentar basarte en esta lógica:

Código PHP:
// Primero preguntas si esta disponible ese salón:
$MQ=mysql_query("SELECT * FROM horario WHERE LUGARH = '$salon' AND HRI1 >= '$hri' AND HRF1 <= '$hrf';");
if(
mysql_fetch_row($MQ)){ // aqui comprobamos si está ocupada
  //ESTA OCUPADA!
  
echo "Este salon no esta disponible";
}else{
  
//ESTA DISPONIBLE, insertando
  
mysql_query("INSERT INTO horario VALUES (...?...);");

espero que te sirva, al menos yo siempre valido que no existan ya los datos en la BD de esta forma :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #6 (permalink)  
Antiguo 27/12/2011, 23:02
 
Fecha de Ingreso: diciembre-2011
Mensajes: 9
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: varificar datos en BD antes de ser enviados.

Muchas gracias stramin, el problema es que tengo que realizar la comprobacion antes de enviar el INSERT, porque el formulario tiene muchos campos y si los mando y me marcara "Este salon no esta disponible" al regresar al formulario tendrian que llenar todos los campos nuevamente y seria engorroso por esa razon quiero hacer la comprobacion antes de enviar los datos :)
  #7 (permalink)  
Antiguo 28/12/2011, 17:16
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: varificar datos en BD antes de ser enviados.

en ese caso puedes volver a llenar los datos usando el POST enviado

o sea algo así:

<input name="name" type="text" id="name" value="<?php echo $_POST['name']; ?>">

de esta manera los datos vuelven a escribirse y no tiene que llenarlos de nuevo...

ahora si realmente quieres validar antes de enviar el formulario, tendrías que hacerlo con AJAX (o en su defecto un iframe XD)... pero creo que no vale la pena.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: bd, formulario, html, mysql, sql
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 14:06.