Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/11/2010, 03:28
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses
Puntos: 2658
Respuesta: Por que no funciona así...

Porque el campo denominado `cuatrimestre` en esa tabla es un campo de tipo VARCHAR o CHAR, por tanto la comparación debe ser realizada contra una cadena de texto; como las cadenas de texto sólo se pueden poner entre apóstrofes, la sentencia una vez construida, dentro de la variable, debe quedar así:
Código MySQL:
Ver original
  1. SELECT * FROM detallehorario WHERE idaula=5 AND cuatrimestre= 'primero'
En el segundo ejemplo, estás omitiendo los apóstrofes que deben encerrar el contenido de la variable $cuatrimestre, entonces, suponiendo que contenga "segundo", la sentencia, una vez creada dice:
Código MySQL:
Ver original
  1. SELECT * FROM detallehorario WHERE idaula=5 AND cuatrimestre= segundo
En ese contexto, segundo no es una cadena de texto, sino que el parser lo interpreta como el nombre de un objeto de base de datos, tal como un columna, una tabla o algo así.

Conclusión: corrige tu PHP para que esté escrito algo así:
Código PHP:
Ver original
  1. $recorro="SELECT * FROM detallehorario WHERE idaula=$idaula AND cuatrimestre= '$cuatrimestre'";
de modo que cuando quede armada, la sentencia tenga el valor de la variable contenido entre apostrofes.

Tip final: DEben quedar entre apóstrofes todos los valores de cadenas de caracteres, fechas, horas y fechahoras. No los valores numéricos, que se interpretan como tales perfectamente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)