Ver Mensaje Individual
  #25 (permalink)  
Antiguo 16/03/2017, 14:47
xerifandtomas
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 7 meses
Puntos: 123
Respuesta: crear condición para validar un estado

Cita:
Iniciado por sonystar_17 Ver Mensaje
lo que quiere es verificar si "X" persona asistió o no a la charla , por eso mi comentario mas arriba.
necesita simplemente la cédula para extraer el estado de x persona.

ya sustentio se le explico!
Entiendo lo que dices en tu comentario anterior.
Pero hasta ahora las sentencias que habéis mostrado responden de a la pregunta
¿ha asistido o no X persona a alguna charla, cualquiera de ellas ?

Cuando entiendo que la pregunta que se debe responder es: ¿ a asistido o no X persona a la charla Y o a la charla del proyecto Z?

Desglosemos un poco el tema, sólo por curiosidad.
¿ Un usuario puede asistir a una, a varias o a ninguna charla?
¿ A una charla pueden asistir uno, varios o ningún usuario ?

Si ambas respuestas son SÍ,
podemos deducir que esiste una relación N:N entre las entidades usuarios y charlas
derivada de la asistencia.

Por lo que necesitaremos 3 tablas mínimo para representar el modelo, corrijanme equivoco.

usuarios
PK_usuario
Resto de atributos

charlas
PK_charla
Resto de atributos

asistencias
PK_asistencia
FK_usuario
FK_charla
estado
Resto de atributos

Añadamos el proyecto.
proyectos
PK_proyecto
resto de atributos


¿Un usuario puede acceder al proyecto si participo en una charla, cualquiera de ellas
o solo puede aceder al proyecto si participo en la charla especifica del proyecto?

Si la respuesta es, si participo en cualquiera de las charlas, la que sea:
Código SQL:
Ver original
  1. SELECT * FROM asistencias WHERE FK_usuario=susarioX AND estado=asistio LIMIT 1
si devuelve almenos un registro es que asistio almeno a 1 charla,
de lo contrario no asistio a ninguna

Si la respuesta es, si participo en una charla especifica, la del proyecto:
- Debemos añadir primero esa relacion entre charlas y proyectos ( una charla pertenece a un proyecto)
¿ Un proyecto puede tener una, varias o ninguna charla ? SI, una, varias o ninguna
¿ Una charla puede pertenecer a mas de un proyecto ? NO, solo a un proyecto

charlas
PK_charla
FK_proyecto
Resto de atributos

Ahora podemos preguntar ¿ El usuario X asitio a la charla del proyecto Z ?
Código SQL:
Ver original
  1. SELECT * FROM  asistencias
  2. INNER JOIN charlas ON asistencias.FK_charla=charlas.PK_charla
  3. WHERE asistencias.FK_usuario=X AND charlas.FK_proyecto=Z AND estado=asistio

--------------------

Lo que no termino de entender en tu enunciado es esta ultima relacion entre el proyecto, la charla y el usuario.
Tus relaciones son ambiguas y tus requerimientos poco precisos.
No pretendo sarmonearte ni mucho menos, pero es dificil, dar una respuesta certera cuando
la definicion del proyecto es ambigua, poco precisa o los requerimientos estan mal planteado
o no son claros.

---------------------
Veamos tu caso:

usuarios ( Almacena los usuarios del sistema )
id ( identificador unico )
cedula ( ¿es un PK de usuarios, es unico?, para que quieres el id entonces )
resto de atributos

pre_inscripcion ( Almacena los usuarios pre_inscritos a un proyecto)
(donde esta el PK)
cedula (FK tabla usuarios)
idcarreras ( a que hace referencia, de donde sale, es el PK)
estado (representa el estado; asite, no asiste, por asistir)

inscripcion_alumnos
id
(PK)
idinscripcion_proyectos ( FK tabla inscripcion_proyectos)
cedula (FK tabla usuarios)

inscripcion_proyectos
id
(PK)
resto de campos

Claramente viendo esto, en tus tablas falta determinar de forma clara y concisa tus requerimientos:
Un usuario cuando esta preinscrito. ¿Que significa? ¿ para que esta preinscrito ? ¿ par un proyecto, para todos los proyectos ? ¿ esiste una relacion entre proyectos y preinscritos?

En fin necesitas pulir este aspecto como bien han comentado.
por otro lado si respondes a estas preguntas y alas del ejemplo quizas pueda o podamos ayudarte con un ejemplo mas preciso.
__________________
Unset($vida['malRollo']);

Última edición por xerifandtomas; 16/03/2017 a las 14:55