Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/03/2014, 06:15
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: 16 años, 5 meses
Puntos: 2658
Respuesta: Unknown column, pero no me refiero a una columna

Es que estás cometiendo un error en la programación...
El tema es que MySQL no entiende PHP, y por ende tampoco entiende variables de PHP. Por esta razón, cuando creas dinámicamente una sentencia, debes asegurarte de que aquellos valores que sean cadenas de texto, en el SQL queden encerrados entre apóstrofos.
Los apóstrofos que determinan las cadenas no son puestos por la librería de enlace a datos, los tienes que poner tu en el script.
Para que se entienda claramente, cuando haces esto:

Código MySQL:
Ver original
  1. SELECT *, COUNT(P.idpost) count_post
  2. FROM posts P INNER JOIN subcategories S ON S.idsubcategorie=P.idsubcategorie
  3. WHERE S.subcategorie=$subcategorie

y el valor de $subcategorie es "PHP", la sintaxis que realmente recibe MySQL es:

Código MySQL:
Ver original
  1. SELECT *, COUNT(P.idpost) count_post
  2. FROM posts P INNER JOIN subcategories S ON S.idsubcategorie=P.idsubcategorie
  3. WHERE S.subcategorie=PHP
En ese contexto, "PHP" no es una cadena de texto, en el nombre de un objeto, y MySQL asume que se trata de una columna, dada la sintaxis.

¿Se entiende?

La solución (que es tema de programación, en realidad), es que la variable quede entre los apostrofos que deben tener:

Código MySQL:
Ver original
  1. SELECT *, COUNT(P.idpost) count_post
  2. FROM posts P INNER JOIN subcategories S ON S.idsubcategorie=P.idsubcategorie
  3. WHERE S.subcategorie='$subcategorie'

Siempre recordando que esa es una solución de un problema de programación, no de SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)