# El problema que no me dejaba enviar noticias

- Dirección: https://freemem.space/el-problema-que-no-me-dejaba-enviar-noticias/
- Publicada: 5 de abril de 2006
- Temas: Archivo de tapiasbravo.com
- Autor: Francisco Antonio Tapias Bravo

Si os fijai en la fecha del anterior post y este, podréis comprobar que la web ha estado en un estado de largo letargo. El motivo, un problema técnico que me impedía ver los posts y acceder a su edición desde el panel de administración. Esto, unido al poco tiempo que he tenido para intentar solventar el problema me ha alejado más de lo deseado del mantenimiento de los contenidos de mi bitácora.

Como hay mucha más gente a la que le ha ocurrido, como he podido comprobar en google y nadie parece haberse dado cuenta de lo que ocurre (o yo no he encontrado la solución, entre otras cosas porque soy muy torpe para buscar en google), os documento un poco el problema y como se solventa. Todo comenzó cuando actualicé a MySQL 5.x. Cuando quería acceder a la lista de contenidos en mi Mambo Server (este fallo alcanza a varias versiones), me aparecía el siguiente error:

 Error: DB function failed with error number 1054  
Unknown column ‘c.access’ in ‘on clause’ SQL=SELECT c.\*, g.name AS  
groupname, cc.name, u.name AS editor, f.content\_id AS frontpage FROM  
mos\_content AS c, mos\_categories AS cc, mos\_sections AS s LEFT JOIN  
mos\_groups AS g ON g.id = c.access LEFT JOIN mos\_users AS u ON u.id =  
c.checked\_out LEFT JOIN mos\_content\_frontpage AS f ON f.content\_id =  
c.id WHERE c.state >= 0 AND c.catid=cc.id AND cc.section=s.id AND  
s.scope=’content’ AND c.sectionid=’7′ ORDER BY catid, ordering LIMIT  
0,10

Parece que las nuevas reglas de MySql 5 requieren que la tabla referenciada esté inmediatamente antes del ‘LEFT JOIN’. Así que si buscamos en administrator/content.php el siguiente código:

        $database->setQuery( «SELECT c.\*, g.name AS groupname, cc.name, u.name AS editor, f.content\_id AS frontpage»  
        . «nFROM mos\_content AS c, mos\_categories AS cc, mos\_sections AS s»  
        . «nLEFT JOIN mos\_groups AS g ON g.id = c.access»  
        . «nLEFT JOIN mos\_users AS u ON u.id = c.checked\_out»  
        . «nLEFT JOIN mos\_content\_frontpage AS f ON f.content\_id = c.id»  
        . (count( $where ) ? «nWHERE » . implode( ‘ AND ‘, $where ) : «»)  
        . «nORDER BY catid, ordering»  
        . «nLIMIT $pageNav->limitstart,$pageNav->limit»  
        );

 vemos que mos\_content AS c está justo destrás del ‘FROM’ y debería estar justo antes del ‘LEFT JOIN’, así que el código debería quedar de la siguiente forma:

        $database->setQuery( «SELECT c.\*, g.name AS groupname, cc.name, u.name AS editor, f.content\_id AS frontpage»  
        . «nFROM mos\_categories AS cc, mos\_sections AS s, mos\_content AS c»  
        . «nLEFT JOIN mos\_groups AS g ON g.id = c.access»  
        . «nLEFT JOIN mos\_users AS u ON u.id = c.checked\_out»  
        . «nLEFT JOIN mos\_content\_frontpage AS f ON f.content\_id = c.id»  
        . (count( $where ) ? «nWHERE » . implode( ‘ AND ‘, $where ) : «»)  
        . «nORDER BY catid, ordering»  
        . «nLIMIT $pageNav->limitstart,$pageNav->limit»  
        );

Espero que os sirva 😉 

*Publicado en old.tapiasbravo.com el 5 de abril de 2006. Recuperado de la [Wayback Machine](https://web.archive.org/web/20060821222057/http://old.tapiasbravo.com/) en 2026.*
