Click to See Complete Forum and Search --> : Unknown Column error randomly appeared


lindsayanng
06-15-2008, 01:45 PM
Hey again. i am having another issue. I installed a pre-coded contribution that was working fine minus one Syntax error. I changed that error which was in a COMPLETELY different file, and all of a sudden i got THIS error in a different page!!

here is the error i got:
1054 - Unknown column 'a.authors_id' in 'on clause'

select count(*) as total from articles a, articles_to_topics a2t left join topics_description td on a2t.topics_id = td.topics_id left join authors au on a.authors_id = au.authors_id, articles_description ad where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_id = a2t.articles_id and a.articles_status = '1' and a.articles_id = ad.articles_id and ad.language_id = '1' and td.language_id = '1'

[TEP STOP]


this is the code for that file. I do not understand because this WAS working last night, and when i fixed the syntax error, this popped up, but they are un-related.

<?php
/*
$Id: articles.php, v1.0 2003/12/04 12:00:00 ra Exp $

osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com

Copyright (c) 2003 osCommerce

Released under the GNU General Public License
*/

function tep_show_topic($counter) {
global $tree, $topics_string, $tPath_array;

for ($i=0; $i<$tree[$counter]['level']; $i++) {
$topics_string .= "&nbsp;&nbsp;";
}

$topics_string .= '<a href="';

if ($tree[$counter]['parent'] == 0) {
$tPath_new = 'tPath=' . $counter;
} else {
$tPath_new = 'tPath=' . $tree[$counter]['path'];
}

$topics_string .= tep_href_link(FILENAME_ARTICLES, $tPath_new) . '">';

if (isset($tPath_array) && in_array($counter, $tPath_array)) {
$topics_string .= '<b>';
}

// display topic name
$topics_string .= $tree[$counter]['name'];

if (isset($tPath_array) && in_array($counter, $tPath_array)) {
$topics_string .= '</b>';
}

if (tep_has_topic_subtopics($counter)) {
$topics_string .= ' -&gt;';
}

$topics_string .= '</a>';

if (SHOW_ARTICLE_COUNTS == 'true') {
$articles_in_topic = tep_count_articles_in_topic($counter);
if ($articles_in_topic > 0) {
$topics_string .= '&nbsp;(' . $articles_in_topic . ')';
}
}

$topics_string .= '<br>';

if ($tree[$counter]['next_id'] != false) {
tep_show_topic($tree[$counter]['next_id']);
}
}
?>
<!-- topics //-->
<tr>
<td>
<?php
$info_box_contents = array();
$info_box_contents[] = array('text' => BOX_HEADING_ARTICLES);

new infoBoxHeading($info_box_contents, true, false);

$topics_string = '';
$tree = array();

$topics_query = tep_db_query("select t.topics_id, td.topics_name, t.parent_id from " . TABLE_TOPICS . " t, " . TABLE_TOPICS_DESCRIPTION . " td where t.parent_id = '0' and t.topics_id = td.topics_id and td.language_id = '" . (int)$languages_id . "' order by sort_order, td.topics_name");
while ($topics = tep_db_fetch_array($topics_query)) {
$tree[$topics['topics_id']] = array('name' => $topics['topics_name'],
'parent' => $topics['parent_id'],
'level' => 0,
'path' => $topics['topics_id'],
'next_id' => false);

if (isset($parent_id)) {
$tree[$parent_id]['next_id'] = $topics['topics_id'];
}

$parent_id = $topics['topics_id'];

if (!isset($first_topic_element)) {
$first_topic_element = $topics['topics_id'];
}
}

//------------------------
if (tep_not_null($tPath)) {
$new_path = '';
reset($tPath_array);
while (list($key, $value) = each($tPath_array)) {
unset($parent_id);
unset($first_id);
$topics_query = tep_db_query("select t.topics_id, td.topics_name, t.parent_id from " . TABLE_TOPICS . " t, " . TABLE_TOPICS_DESCRIPTION . " td where t.parent_id = '" . (int)$value . "' and t.topics_id = td.topics_id and td.language_id = '" . (int)$languages_id . "' order by sort_order, td.topics_name");
if (tep_db_num_rows($topics_query)) {
$new_path .= $value;
while ($row = tep_db_fetch_array($topics_query)) {
$tree[$row['topics_id']] = array('name' => $row['topics_name'],
'parent' => $row['parent_id'],
'level' => $key+1,
'path' => $new_path . '_' . $row['topics_id'],
'next_id' => false);

if (isset($parent_id)) {
$tree[$parent_id]['next_id'] = $row['topics_id'];
}

$parent_id = $row['topics_id'];

if (!isset($first_id)) {
$first_id = $row['topics_id'];
}

$last_id = $row['topics_id'];
}
$tree[$last_id]['next_id'] = $tree[$value]['next_id'];
$tree[$value]['next_id'] = $first_id;
$new_path .= '_';
} else {
break;
}
}
}
tep_show_topic($first_topic_element);

$info_box_contents = array();
$new_articles_string = '';
$all_articles_string = '';

if (DISPLAY_NEW_ARTICLES=='true') {
if (SHOW_ARTICLE_COUNTS == 'true') {
$articles_new_query = tep_db_query("select a.articles_id from (" . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t) left join " . TABLE_TOPICS_DESCRIPTION . " td on (a2t.topics_id = td.topics_id) left join " . TABLE_AUTHORS . " au on (a.authors_id = au.authors_id), " . TABLE_ARTICLES_DESCRIPTION . " ad where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_id = a2t.articles_id and a.articles_status = '1' and a.articles_id = ad.articles_id and ad.language_id = '" . (int)$languages_id . "' and td.language_id = '" . (int)$languages_id . "' and a.articles_date_added > SUBDATE(now( ), INTERVAL '" . NEW_ARTICLES_DAYS_DISPLAY . "' DAY)");
$articles_new_count = ' (' . tep_db_num_rows($articles_new_query) . ')';
} else {
$articles_new_count = '';
}

if (strstr($_SERVER['PHP_SELF'],FILENAME_ARTICLES_NEW) or strstr($PHP_SELF,FILENAME_ARTICLES_NEW)) {
$new_articles_string = '<b>';
}

$new_articles_string .= '<a href="' . tep_href_link(FILENAME_ARTICLES_NEW, '', 'NONSSL') . '">' . BOX_NEW_ARTICLES . '</a>';

if (strstr($_SERVER['PHP_SELF'],FILENAME_ARTICLES_NEW) or strstr($PHP_SELF,FILENAME_ARTICLES_NEW)) {
$new_articles_string .= '</b>';
}

$new_articles_string .= $articles_new_count . '<br>';

}

if (DISPLAY_ALL_ARTICLES=='true') {
if (SHOW_ARTICLE_COUNTS == 'true') {
$articles_all_query = tep_db_query("select a.articles_id from (" . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t) left join " . TABLE_TOPICS_DESCRIPTION . " td on (a2t.topics_id = td.topics_id) left join " . TABLE_AUTHORS . " au on (a.authors_id = au.authors_id), " . TABLE_ARTICLES_DESCRIPTION . " ad where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_id = a2t.articles_id and a.articles_status = '1' and a.articles_id = ad.articles_id and ad.language_id = '" . (int)$languages_id . "' and td.language_id = '" . (int)$languages_id . "'");
$articles_all_count = ' (' . tep_db_num_rows($articles_all_query) . ')';
} else {
$articles_all_count = '';
}

if ($topic_depth == 'top') {
$all_articles_string = '<b>';
}

$all_articles_string .= '<a href="' . tep_href_link(FILENAME_ARTICLES, '', 'NONSSL') . '">' . BOX_ALL_ARTICLES . '</a>';

if ($topic_depth == 'top') {
$all_articles_string .= '</b>';
}

$all_articles_string .= $articles_all_count . '<br>';

}

$info_box_contents[] = array('text' => $new_articles_string . $all_articles_string . $topics_string);

new infoBox($info_box_contents);
?>
</td>
</tr>
<!-- topics_eof //-->

legendx
06-15-2008, 07:26 PM
Open the articles table and look for a field called authors_id. See if you notice anything out of place or if it got renamed or something. The error says the field doesn't exist.. usually opening up phpmyadmin and looking for it myself displays some other bigger obvious problems like the table got corrupt or something like that.

lindsayanng
06-15-2008, 08:05 PM
I checked the tables and everything is ok. I think that it has something to do with the version of PHP that i am using. I read that the contribution was made BEFORE 5.0 came out, so they SAID there was an easy fix, but i tried that and i CAN NOT fix it with what they said..

Do you see anything in there that might have been readable in the previous version but not in the new one?

NogDog
06-16-2008, 01:31 AM
The error is coming from MySQL, not from PHP, so I don't see how the PHP version would matter. Possibly the MySQL version would, though. Also, I don't see that query anywhere in the code you posted, so it would seem to be somewhere else (perhaps some include file?).