Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Muchos campos con el mismo valor

Estas en el tema de Muchos campos con el mismo valor en el foro de PHP en Foros del Web. Hola, buen día a todos, mi duda es la siguiente, ojala puedan auxiliarme: Tengo una tabla de calificaciones, donde quiero obtener todos los registros que ...
  #1 (permalink)  
Antiguo 10/03/2016, 14:39
Avatar de Alejandra_Sand  
Fecha de Ingreso: marzo-2016
Mensajes: 22
Antigüedad: 8 años, 1 mes
Puntos: 1
Muchos campos con el mismo valor

Hola, buen día a todos, mi duda es la siguiente, ojala puedan auxiliarme:

Tengo una tabla de calificaciones, donde quiero obtener todos los registros que tengan 'N/A' según el id_docentexmateria. Lo que sería más o menos así:

Código PHP:
       SELECT from calificaciones where id_docentexmateria='$id_docxmat' and cal1='N/A'

La situación es que tengo más de un campo calificación, tengo de hecho 10 campos calificación, los que serían cal1, cal2, cal3, cal4, cal5, cal6, cal7, cal8, cal9, y cal10.

Necesito una consulta que revise esos 10 campos, y si en uno de ellos encuentra un 'N/A' tome en cuenta ese registro.

He leído sobre Group By, y me disculpo por mi falta de entendimiento, por que no me ha resultado del todo claro y no sé si sea la sentencia apropiada para mi caso.


De ante mano, muchas gracias y saludos.
  #2 (permalink)  
Antiguo 10/03/2016, 14:51
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: Muchos campos con el mismo valor

Cita:
La situación es que tengo más de un campo calificación, tengo de hecho 10 campos calificación, los que serían cal1, cal2, cal3, cal4, cal5, cal6, cal7, cal8, cal9, y cal10.
Bueno, en realidad lo que tienes es una base de datos muy mal diseñada...

Las calificaciones no se almacenan todas en un mismo registro, ni aunque pertenezcan a la misma asignatura, ni tampoco si son del mismo año ni nada que se le parezca. Cuando tienes una relación N:M entre alumnos y asignaturas, denominada "calificación", eso se maneja en una tabla independiente con un único registro por calificación, asignatura, alumno y examen. Y si, son tantos registros como notas se hayan aplicado.
La tabla así como la tienes NO SIRVE para hacer una consulta como la que quieres de una forma optimizada. tendrás que hacer un WHERE con 10 condiciones diferentes si quieres encontrar al menos un campo donde se cumpla.

Hubiese sido mejor normalziar esa tabla...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/03/2016, 15:45
Avatar de Alejandra_Sand  
Fecha de Ingreso: marzo-2016
Mensajes: 22
Antigüedad: 8 años, 1 mes
Puntos: 1
Respuesta: Muchos campos con el mismo valor

¡Hola gnzsoloyo!,muchas gracias por tu pronta respuesta.

De sobra sé que la BD no cumple con las características apropiadas, y en efecto no ha sido normalizada optimamente. Para mi desgracia, no tengo permisos ponerle un dedo encima. Por eso no mencioné nada sobre como esta estructurada la tabla, es un asunto que pelee lo suficiente con los de arriba, pero egh... u__ù Ese es otro tema. Por ello me concentré en escribir sobre el asunto de la consulta.

De momento he intentado con:

Código PHP:


SELECT 
from calificaciones where id_docentexmateria='$id_docxmat' and c1='N/A' or c2='N/A' or c3='N/A' or c4='N/A' or c5='N/A' or c6='N/A' or c7='N/A' or c8='N/A' or c9='N/A' or c10='N/A'" ; 
El problema es que me lanza registros incluso con un id_docentexmateria, diferente al guardado en mi variable $id_docxmat.


Si alguien conociera una forma posible de hacer lo que deseo hacer sin tocar la base de datos, sería genial. Sino, tendré que aventarme otro round con mis superiores. Muchas gracias nuevamente. uoù
  #4 (permalink)  
Antiguo 10/03/2016, 17:02
Avatar de Alejandra_Sand  
Fecha de Ingreso: marzo-2016
Mensajes: 22
Antigüedad: 8 años, 1 mes
Puntos: 1
Respuesta: Muchos campos con el mismo valor

Hola, de nuevo. Por si a alguien googleando llega a necesitar algo parecido. Obtener los registros de una consulta con un where que evalue varios campos con el mismo valor. Era más sencillo de lo que me imaginaba.

Código PHP:


SELECT 
from calificaciones where id_docentexmateria='$id_docxmat' and parcial='$parcial' 
and (c1='N/A' or c2='N/A' or c3='N/A' or c4='N/A' or c5='N/A' or c6='N/A' or c7='N/A' or c8='N/A' or c9='N/A' or c10='N/A'

El secreto esta en encerrar todos los campos a revisión en (), fuera de los otros criterios del where, en mi caso id_docentexmateria y parcial.

Etiquetas: mysql
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 09:19.