Foros del Web » Programando para Internet » PHP »

Problema con sentencia where en php??

Estas en el tema de Problema con sentencia where en php?? en el foro de PHP en Foros del Web. Buenas mi cordial saludo para todos, soy nuevo, no tan nuevo programando llevo alrededor de dos anos, pero siempre existen lagunas mentales y mas estando ...
  #1 (permalink)  
Antiguo 07/02/2010, 12:20
 
Fecha de Ingreso: febrero-2010
Mensajes: 16
Antigüedad: 14 años, 2 meses
Puntos: 0
Problema con sentencia where en php??

Buenas mi cordial saludo para todos, soy nuevo, no tan nuevo programando llevo alrededor de dos anos, pero siempre existen lagunas mentales y mas estando en tesis....

Bueno al rollo, tengo la siguiente duda mi pagina es educacionytecnologia.com.ve, es para el desarrollo de mi tesis de grado en informatica, la cuestion es la siguiente:

Mi institucion se basa en prestar servicios educativos a X institucion que se registre,
obviamente puede que un profesor pertenezca a mas de una institucion, he aqui el problema, quiero validar que el profesor solo pueda estar registrado en una institucion a la vez.

Obviamente existe una relacion entre el profesor y la institucion que es el RIF de la institucion como campo clave y verifico el numero de cedula del profesor como campo clave, mas no encuentro la manera de verificar si el docente existe ya en esa institucion.

Vale destacar que en la tabla de institucion no existe ningun campo que se llame profesores, ya que si no imaginense cuantos tendria que crear......

Aqui un resumen de como son las bases de datos de profesores e institucion y el pedazo del codigo para que se hagan una idea....


Institucion
Cita:
rif
nombrei
'direccioni
telefonoi
faxi
correoi
aprobi
usuarioi
contrasenai
rcontrasenai
OJO: Dentro del formulario de registro del profesor genero una lista con los rif de las instituciones que estan registradas.....

Profesores:
Cita:
nom_prof
$rif
cedulap
direccionp
telefonop
profesionp
correop
aprobp
usuariop
contrasenap
rcontrasenap

Ok esos son los datos que tengo dentro de la base de datos aqui el codigo...

Código PHP:
<?php

$nombrep
$_POST['nom_prof'];
$rif$_POST['$rif'];
$cedulap$_POST['cedulap'];
$direccionp$_POST['direccionp'];
$telefonop$_POST['telefonop'];
$profesionp$_POST['profesionp'];
$correop$_POST['correop'];
$aprobp$_POST['aprobp'];
$usuariop$_POST['usuariop'];

$contrasenap$_POST['contrasenap'];

$rcontrasenap$_POST['rcontrasenap'];



$dbmysql_connect ("localhost""","");
if (!
$db)
{
echo 
"Error al conectar con la base de datos";
exit;
}

if (
$nombrep =='')
{
echo 
"Debe Ingresar Nombre Completo";
exit;
}

elseif (
$cedulap=='')
{
echo 
"Debe Ingresar la Cedula";
exit;
}

elseif (
$direccionp=='')
{
echo 
"Debe Ingresar la Direccion de Residencia";
exit;
}

elseif (
$telefonop =='')
{
echo 
"Debe Ingresar Telefono";
exit;
}

elseif (
$profesionp =='')
{
echo 
"Debe Ingresar Profesion";
exit;
}

elseif (
$correop =='')
{
echo 
"Debe Ingresar Correo";
exit;
}
elseif (
$usuariop =='')
{
echo 
"Debe Ingresar Usuario";
exit;
}
elseif (
$contrasenap <> $rcontrasenap)
{
echo
"El Password debe coincidir";
exit;
}

$fecha=time();
$fecha -= (90 60);
echo 
"<b> Fecha: </b>";
//echo date(" H:i d-m-Y", $fecha );
echo date("Y-m-d H:i"$fecha );
echo 
"<br>";

$fechai date("Y-m-d"$fecha );
echo 
"$fechai";

//$usuarioi= md5('$usuarioi');
//$contrasenai= md5('$contrasenai');
//$rcontrasenai= md5('$rcontrasenai');

mysql_select_db ("eductecn_sistema");
$consulta"SELECT * FROM profesores where ced_prof='$cedulap' and rif='$rif'"
$resultadomysql_query($consulta);
$filamysql_num_rows($resultado);

            
        
            if (
$fila 0)
            {
            echo 
"El usuario que solicita o los datos ingresados ya se encuentran registrados, por favor vuelva a intentarlo";
            exit;
            }
            else
            {
            
mysql_select_db("eductecn_sistema");
            
$sql1"insert into profesores(nombre_prof, rif, ced_prof, direccion_prof, telefono_prof, profesion_prof, correo_prof, fecha_prof, usuariop, passwordp, rpasswordp, aprobadop) VALUES ('$nombrep','$rif','$cedulap','$direccionp','$telefonop','$profesionp','$correop','$fechai','$usuariop','$contrasenap','$rcontrasenap','$aprobp')";
            
mysql_query($sql1); 
            
//mysql_close;
            
echo "Registro Completado para poder disfrutar de nuestros servicios debe esperar a que el Administrador apruebe su solicitud, Agradecemos su Visita, Esperamos verlos pronto!";
            exit;
            }




?>
Justamente en la consulta SQL me gustaria saber si la estoy realizando bien, como dije me gustaria saber es si el profesor se encuentra registrado en una institucion, recordando que cada profesor puede pertenecer a mas de una institucion....

Gracias de antemano.... saludos :D
  #2 (permalink)  
Antiguo 07/02/2010, 12:56
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Problema con sentencia where en php??

Hola,

Pasando por alto lo de meter las variables a pelo en la consulta, validar los campos del form con php y el duplicado de mysql_select_db("eductecn_sistema"); despues del ultimo else.

La consulta en sí la veo bien, a ver que dicen los masters del foro.



Saludos,
  #3 (permalink)  
Antiguo 07/02/2010, 13:04
 
Fecha de Ingreso: febrero-2010
Mensajes: 16
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema con sentencia where en php??

Ok amigo gracias por tu respuesta, a ver si me explico, si bien sabes puedo agregar varios docentes asociados a una institucion en la base de datos se ve pues, tengo dos docentes diferentes con dos cedula nombre y usuarios distintos..... me gustaria que uno de esos docentes se registrara en otra institucion mas creo que he hechado tanto codigo la ultima semana que a lo mejor lo mas sencillo se me hace dificil.

Obviamente creo que deberia validar tambien el usuario puesto que no se puede repetir.... igual que la cedula.... se podria realizar con un while y verificar los campos existentes en la base de datos, pero pienso que es lo mismo con la consulta en sql se hace lo mismo y con menos codigo.

Pero escencialmente me gustaria agregar un docente que ya existe para la institucion Las Palmas, a otra institucion que se llame Maria del Carmen, claro esta obviamente con diferentes usuarios.

Gracias de antemano.
  #4 (permalink)  
Antiguo 07/02/2010, 13:27
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Problema con sentencia where en php??

Creo que deberias crear otra tabla:

tabla1= datos profesores
tabla2= datos instituciones

tabla3= relacion entre profesores e instituciones, en esta tabla los campos serian pej: id_autonumerico, id_profesor, id_institución .
Así podrias validar si un profe pertenece a dicha institución.


Saludos
  #5 (permalink)  
Antiguo 07/02/2010, 13:44
 
Fecha de Ingreso: febrero-2010
Mensajes: 16
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema con sentencia where en php??

Mi tutor academico me recomendo hacerlo por codigo de usuario pero realmente no entiendo mucho :S. Si alguien me despeja las dudas.... Saludos y gracias
  #6 (permalink)  
Antiguo 07/02/2010, 13:52
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Problema con sentencia where en php??

Hola,
No importa que sea por código_de_usuario o por id_autonumérico, la cuestión es establecer una buena relación entre tablas y no repetir datos, en eso se basan las DB relaciónales.

Mi consejo es que cojas papel y lápiz y hagas una estructura bien definida de la base de datos para no tener problemas en el futuro.

Imagina que en un futuro pueden presentarse nuevas opciones y hay que estar prevenido.

Saludos
  #7 (permalink)  
Antiguo 07/02/2010, 14:03
 
Fecha de Ingreso: febrero-2010
Mensajes: 16
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema con sentencia where en php??

Ya lo tengo tio, deberia verificar si el usuario en la tabla profesores existe, si este existe entonces que verifique a que institucion pertenece, despues de verificada la institucion a la que esta registrada, simplemente la comparo con la que ingreso si son iguales entonces obviamente esta rechazado si no son iguales puede registrarse.... Que os parece? Saludos.

PD: Tuve que asomarme a la ventana tomarme un nestea bien frio, y despejar un poco la mente.
  #8 (permalink)  
Antiguo 07/02/2010, 14:13
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Problema con sentencia where en php??

Bendito nestea je,je
  #9 (permalink)  
Antiguo 07/02/2010, 14:37
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 2 meses
Puntos: 27
Respuesta: Problema con sentencia where en php??

el select que planteas es la correcta a mi punto de vista.. por que primero revisas si el profesor ya se encuentra dentro de la tabla (primera validacion), y luego verificar a que institucion pertenece (segunda validacion), entonces de acuerdo a los resultados obtenidos haces los respectivos warning o lo que te venga en mente en caso que se cumpla las condiciones que le expongas
  #10 (permalink)  
Antiguo 07/02/2010, 15:12
 
Fecha de Ingreso: febrero-2010
Mensajes: 16
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema con sentencia where en php??

Bueno de lo que he podido realizar este es mas o menos el codigo con el que quiero dar pero ahora no me agrega :S, me valida mas no me agrega y no se porque me parece que todo esta en orden a ver si me hechan una mano :).


Código PHP:
mysql_select_db ("eductecn_sistema");
$consulta"SELECT * FROM profesores where usuariop='$usuariop'"
$resultadomysql_query($consulta);
$filamysql_num_rows($resultado);
        
    if (
$fila 0)
    {
        while (
$fila2mysql_fetch_array($resultado))
        {
                
                
$rif2$fila2[1];
                echo 
"$rif";
                echo 
"$rif2";
                
                if (
$rif2 == $rif)
                {
                echo 
"Usuario ya existe en esta Institucion, por favor seleccione otro";
                exit;
                }
                else
                {
                    
mysql_select_db("eductecn_sistema");
                    
$sql1"insert into profesores(nombre_prof, rif, ced_prof, direccion_prof, telefono_prof, profesion_prof, correo_prof, fecha_prof, usuariop, passwordp, rpasswordp, aprobadop) VALUES ('$nombrep','$rif','$cedulap','$direccionp','$telefonop','$profesionp','$correop','$fechai','$usuariop','$contrasenap','$rcontrasenap','$aprobp')";
                    
mysql_query($sql1); 
                    
//mysql_close;
                    
echo "Registro Completado para poder disfrutar de nuestros servicios debe esperar a que el Administrador apruebe su solicitud, Agradecemos su Visita, Esperamos verlos pronto!";
                    exit;
                }    
        }
    }    
        
    else
    {
                    
mysql_select_db("eductecn_sistema");
                    
$sql2"insert into profesores(nombre_prof, rif, ced_prof, direccion_prof, telefono_prof, profesion_prof, correo_prof, fecha_prof, usuariop, passwordp, rpasswordp, aprobadop) VALUES ('$nombrep','$rif','$cedulap','$direccionp','$telefonop','$profesionp','$correop','$fechai','$usuariop','$contrasenap','$rcontrasenap','$aprobp')";
                    
mysql_query($sql2); 
                    
//mysql_close;
                    
echo "Registro Completado para poder disfrutar de nuestros servicios debe esperar a que el Administrador apruebe su solicitud, Agradecemos su Visita, Esperamos verlos pronto!";
                    exit;
    } 
  #11 (permalink)  
Antiguo 07/02/2010, 15:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con sentencia where en php??

Haz un echo con $sql1 y $sql2 antes de enviar la sentencia a ejecución, para ver qué es lo que contiene la cadena en realidad.
Yo sospecho que tienes algún problema con el contenido de las variables...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 07/02/2010, 17:43
 
Fecha de Ingreso: febrero-2010
Mensajes: 16
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema con sentencia where en php??

Buenas noches, pues mira hice los dos echo de cada sentencia y me trae esto:

Con $sql2 que es cuando coloco un usuario nuevo a cualquier institucion:

Código PHP:
insert into profesores(nombre_profrifced_profdireccion_proftelefono_profprofesion_profcorreo_proffecha_profusuarioppasswordprpasswordpaprobadopVALUES ('Jose Antonio Lopez','J-2134566-1','4.513.299','AAAAA','0414-9987648','Ing. Sistemas','[email protected]','2010-02-07','josea','123','123','0'
Osea trae los datos pero no agrega... :S :(.

y con $sql1 que es cuando coloco un usuario que ya exisste en la base de datos pero que solicita pertenecer a otra institucion con otro usuario:

Código PHP:
insert into profesores(nombre_profrifced_profdireccion_proftelefono_profprofesion_profcorreo_proffecha_profusuarioppasswordprpasswordpaprobadopVALUES ('Freddy Gimenez','J-2134566-1','4.513.299','asas','0414-9987642','Ing. Sistemas','[email protected]','2010-02-07','fredd','123','123','0'
Este usuario de la segunda consulta existe.. pero en otra institucion y no lo agrega, en la base de datos tenia un error que tenia a cedula como campo unico, cambie el campo unico para usuario que es lo que realmente me importa..... y bueno.... venga no se :(
  #13 (permalink)  
Antiguo 07/02/2010, 17:55
 
Fecha de Ingreso: febrero-2010
Mensajes: 16
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema con sentencia where en php??

Ok tios antetodo muchas gracias, el error era que en la base de datos elimine el campo fechai que es fecha de ingreso.... y por lo tanto me daba error en la inclusion de los datos, ahora... me agrega el profesor dependiendo de la institucion si pertenece o no, ahora si pertenete no me manda ningun mensaje da un mensaje como de agregado no entiendo porque pero no se agrega en la base de datos ya que el usuariop es campo unico y me imagino que por eso no procede.... dejenme terminar de acomodar un poco el codigo y se los pongo por aqui para que lo ojeen y lo revisen gracias.

Etiquetas: sentencia
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 03:39.