Перейти к контенту
  • 0

Ошибка портала Mysql


bartik

Вопрос

mySQL query error: SELECT t.tid, t.title, t.state, t.last_vote, p.*, v.member_id as member_voted

FROM 1ibf_topics t, 1ibf_polls p

LEFT JOIN 1ibf_voters v ON (v.member_id=1 and v.tid=t.tid)

WHERE t.tid=191 AND p.tid=t.tid

 

mySQL error: Unknown column 't.tid' in 'on clause'

mySQL error code:

Date: Friday 27th 2006f January 2006 05:33:00 PM

 

Вот такая вот ошибка вылезла когда набрал свой сайт (на главной стандартный портал , который идёт вместе с ipb2.0.3 , помогите а то сайт стоит , юзал оптимизация и чинение таблиц но там пишет что все таблы в норме , произошло это после обновление php сейчас на сервере 5.1.2 :D

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

ALTER TABLE `1ibf_topics` ADD `tid` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ;

 

В следущий раз осторожнее эксперементируйте с базой - все топики у Вас потеряли свой ID.. очень плохо.

 

PS: Что это за портал такой - MySQL???

Ссылка на комментарий
Поделиться на других сайтах

  • 0

bartik, не слушай этого балбеса и не выполняй этот код ;)

 

тебе надо исправить запрос на такой:

 

SELECT t.tid, t.title, t.state, t.last_vote, p.*, v.member_id as member_voted
FROM (1ibf_topics t, 1ibf_polls p)
LEFT JOIN 1ibf_voters v ON (v.member_id=1 and v.tid=t.tid)
WHERE t.tid=191 AND p.tid=t.tid

 

ищи в коде запросы, в которых участвует LEFT JOIN и используются несколько таблиц в FROM. ставь все таблицы, которые используются в FROM в скобки. по примеру, который я дал выше.

 

Destruction, осторожнее с такими запросами :D если бы у чувака не было этой колонки, ошибка была бы другая.

 

 

добавлено позже:

 

bartik, если быть конкретнее, то ищи в файле sources/sql/mysql_queries.php следующий код:

 

	function portal_get_poll_join( $a )
{
	return "SELECT t.tid, t.title, t.state, t.last_vote, p.*, v.member_id as member_voted
			FROM ".SQL_PREFIX."topics t, ".SQL_PREFIX."polls p
			LEFT JOIN ".SQL_PREFIX."voters v ON (v.member_id={$a['mid']} and v.tid=t.tid)
			WHERE t.tid={$a['tid']} AND p.tid=t.tid";
}

и исправляй на этот:

	function portal_get_poll_join( $a )
{
	return "SELECT t.tid, t.title, t.state, t.last_vote, p.*, v.member_id as member_voted
			FROM (".SQL_PREFIX."topics t, ".SQL_PREFIX."polls p)
			LEFT JOIN ".SQL_PREFIX."voters v ON (v.member_id={$a['mid']} and v.tid=t.tid)
			WHERE t.tid={$a['tid']} AND p.tid=t.tid";
}

это исправит твою текущую ошибку.

но могут быть и другие ошибки по той же причине, так что советую прошарить файлы в директории sources/sql и исправить подобный код.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Спасибо я поправил , но вот возникла новая бага , при загрузке пишется

 

mySQL query error: SELECT COUNT(DISTINCT(t.tid)) as tcnt, 
			COUNT(DISTINCT(p.pid)) as pcnt FROM 1ibf_posts p, 1ibf_topics t WHERE p.post_date > AND p.topic_id=t.tid

mySQL error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND p.topic_id=t.tid' at line 3
mySQL error code: 
Date: Saturday 28th 2006f January 2006 12:38:46 AM

 

Помогите пожалуйста ..... :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0

2.silent, не обзывайся.

 

Всем свойственно ошибаться. Был бы балбесом - врятли составил грамотный запрос.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

вот тут дело уже посерьезнее. у тебя дата не передается в запрос.

в стандартном форуме вообще такого запроса не нашел :D

 

Destruction, я мстю и мстя моя страшна. квиты?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Вот так вот , портал у меня unreal 2.0.4 всё работало пока хостер не перешёл на новый php , так я и думал мне здесь не помогут....

Вот код портала , может мне ктонибудь поможет бесплатно , а то вм нету.... :D

<?php

/*

''~``

( o o )

+------------------.oooO--(_)--Oooo.------------------+

| Unreal Portal v2.0.4 |

| .oooO |

| ( ) Oooo. |

+---------------------\ (----( )--------------------+

\_) ) /

(_/

 

 

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

|The Logo Looks Best in Courier New|

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

---====---

Unreal Portal v2.0.4

By Cricket

*/

 

$idx = new uportal;

 

class uportal

{

var $output = "";

var $uportal = "";

var $page_title = "";

var $nav = array();

var $html = "";

var $parser = "";

var $data = array();

var $read_array = array();

var $forumid = array();

var $forumname = array();

var $day_words = array();

var $bday_cache = array();

 

 

function uportal()

{

global $ibforums, $DB, $std, $print, $skin_universal;

 

//--------------------------------------------

// Require the HTML and language modules

//--------------------------------------------

 

$ibforums->lang = $std->load_words($ibforums->lang, 'lang_uportal',

$ibforums->lang_id );

 

$this->html = $std->load_template('skin_uportal');

 

require ROOT_PATH."sources/lib/post_parser.php";

 

$this->parser = new post_parser();

 

require ROOT_PATH.'sources/lib/boardstats_functions.php';

 

$this->statfunc = new boardstats_functions();

 

$this->statfunc->register_class( $this );

 

// 'read' topics

if ( $read = $std->my_getcookie('topicsread') )

$this->read_array = unserialize(stripslashes($read));

 

//Caching Everything

 

if((!is_array($ibforums->cache['uportal_blocks'])) and

!count($ibforums->cache['uportal_blocks']))

{

$ibforums->cache['uportal_blocks'] = array();

$DB->query("select * from ibf_unrealportal order by order2 ASC");

while($Data = $DB->fetch_row())

$ibforums->cache['uportal_blocks'][] = $Data;

 

$std->update_cache( array( 'name' => 'uportal_blocks', 'array' => 1,

'deletefirst' => 1 ) );

}

 

if((!is_array($ibforums->cache['uportal_settings'])) and

!count($ibforums->cache['uportal_settings']))

{

$ibforums->cache['uportal_settings'] = array();

$DB->query("select * from ibf_up_settings order by name ASC");

 

while($Data = $DB->fetch_row())

$ibforums->cache['uportal_settings'][] = $Data;

 

$std->update_cache( array( 'name' => 'uportal_settings', 'array' => 1,

'deletefirst' => 1 ) );

}

 

if((!is_array($ibforums->cache['uportal_custblocks'])) and

!count($ibforums->cache['uportal_custblocks']))

{

$ibforums->cache['uportal_custblocks'] = array();

$DB->query("select * from ibf_up_custblocks");

 

while($Data = $DB->fetch_row())

$ibforums->cache['uportal_custblocks'][] = $Data;

 

$std->update_cache( array( 'name' => 'uportal_custblocks', 'array' => 1,

'deletefirst' => 1 ) );

}

 

if((!is_array($ibforums->cache['uportal_content'])) and

!count($ibforums->cache['uportal_content']))

{

$ibforums->cache['uportal_blocks'] = array();

$DB->query("select * from ibf_up_custcontent");

 

while($Data = $DB->fetch_row())

$ibforums->cache['uportal_content'][] = $Data;

 

$std->update_cache( array( 'name' => 'uportal_content', 'array' => 1,

'deletefirst' => 1 ) );

}

 

//Portal Blocks

 

foreach($ibforums->cache['uportal_blocks'] as $Data)

{

$GLOBALS['block'][$Data['name']] = $Data['show'];

$blocks[$Data['name']] = $Data['align'];

}

 

//Portal Settings

 

foreach($ibforums->cache['uportal_settings'] as $Data)

{

$GLOBALS['setting'][$Data['name']] = $Data['value'];

}

 

 

//Custom Blocks

 

foreach($ibforums->cache['uportal_custblocks'] as $Data)

{

$this->data[$Data['name']]=$this->do_customblocks($Data);

}

 

//Custom Content

 

if($_GET['code'] != null)

{

foreach($ibforums->cache['uportal_content'] as $Data)

{

if($Data['name'] == $_GET['code'])

{

$content = $Data;

break;

}

}

 

$contentname = $content['name'];

$contenttitle = $content['title'];

$contenthtml = $content['html'];

 

if($content != null)

$this->data[$contentname] =

$this->do_content($contentname, $contenttitle, $contenthtml);

}

 

//Gather information

$this->data['navigation'] = $this->do_navigation();

$this->data['websearch'] = $this->do_websearch();

$this->data['jokes'] = $this->do_jokes();

$this->data['site_search'] = $this->do_site_search();

 

//Stats Start

 

if($GLOBALS['block']['stats'])

{

//-----------------------------------

// Add in show online users

//-----------------------------------

 

if($GLOBALS['setting']['activemembers'])

$stats_html .= $this->statfunc->active_users();

 

//-----------------------------------

// Are we viewing the calendar?

//-----------------------------------

 

if($GLOBALS['setting']['calendar_events'])

{

$stats_html .= $this->statfunc->show_calendar_events();

}

 

//-----------------------------------

// Add in show stats

//-----------------------------------

 

if($GLOBALS['setting']['post_stats'])

$stats_html .= $this->statfunc->show_totals();

 

$stats_html = str_replace('<br>', '<br/>', $stats_html);

 

 

if ($stats_html != "")

{

$this->data['stats'] .=

$this->html->block_header($this->collapse("board_stats"),

"board_stats");

$this->data['stats'] .= $stats_html;

$this->data['stats'] .= $this->html->block_footer();

}

}

 

//Stats End

 

$this->data['news'] = $this->do_news();

$this->data['old_news'] = $this->do_old_news();

$this->data['latest_posts_big'] = $this->do_latest_posts();

$this->data['latest_posts'] = $GLOBALS['return']['latest_posts'];

$this->data['new_posts_big'] = $this->do_new_posts_big();

$this->data['top_posters'] = $this->do_top_posters();

$this->data['new_members'] = $this->do_new_members();

$this->data['top_forums'] = $this->do_top_forums();

$this->data['loginbox'] = $this->do_loginbox();

$this->data['welcomepanel'] = $this->do_welcomepanel();

$this->data['calendar'] = $this->do_calendar();

$this->data['custom_content'] = $this->do_custom_content();

$this->data['announcement'] = $this->do_announcement();

$announcement = $this->data['announcement'];

$this->data['latest_downloads'] = $this->latest_downloads();

$this->data['latest_news'] = $this->latest_news();

 

$count = 0;

 

// IF there is an poll selected, give it here:

if ($GLOBALS['setting']['poll']!=0)

$this->data['poll'] = $this->do_poll($GLOBALS['setting']['poll']);

else

$this->data['poll']="";

 

//Displaying Blocks

 

if($blocks != null)

foreach($blocks as $Data['name'] => $Data['align'])

{

if($GLOBALS['setting']['left'] == "0%" and

$GLOBALS['setting']['right'] != "0%" and $_GET['code'] == null)

{

if($Data['align'] == 'left' or $Data['align'] == 'right')

$rightboxes .= $this->data[$Data['name']];

else if($Data['align'] == 'middle')

{

if($Data['name'] == "news")

{

$middleboxes.= $this->data['news'];

}

else

$middleboxes .= $this->data[$Data['name']];

}

}

 

else if($GLOBALS['setting']['right'] == "0%" and

$GLOBALS['setting']['left'] != "0%" and $_GET['code'] == null)

{

if($Data['align'] == 'left' or $Data['align'] == 'right')

$leftboxes .= $this->data[$Data['name']];

else if($Data['align'] == 'middle')

{

if($Data['name'] == "news")

{

$middleboxes.= $this->data['news'];

}

else

$middleboxes .= $this->data[$Data['name']];

}

}

 

else if($GLOBALS['setting']['left'] == "0%" and

$GLOBALS['setting']['right'] == "0%" and $_GET['code'] == null)

{

if($Data['align'] == 'middle')

{

if($Data['name'] == "news")

{

$middleboxes.= $this->data['news'];

}

else

$middleboxes .= $this->data[$Data['name']];

}

}

 

else if($GLOBALS['setting']['left'] != "0%" and

$GLOBALS['setting']['right'] != "0%" and $_GET['code'] == null)

{

if($Data['align'] == 'left')

$leftboxes .= $this->data[$Data['name']];

else if($Data['align'] == 'right')

$rightboxes .= $this->data[$Data['name']];

else if($Data['align'] == 'middle')

{

if($Data['name'] == "news")

{

$middleboxes.= $this->data['news'];

}

else

$middleboxes .= $this->data[$Data['name']];

}

}

 

else if($GLOBALS['setting']['leftcustom'] == "0%" and

$GLOBALS['setting']['rightcustom'] != "0%" and $_GET['code'] != null)

{

if($Data['align'] == 'left' or $Data['align'] == 'right')

$rightboxes .= $this->data[$Data['name']];

else if($Data['align'] == 'middle')

{

if($Data['name'] == "news")

{

$middleboxes.= $this->data[$_GET['code']];

}

else

$middleboxes .= $this->data[$Data['name']];

}

}

 

else if($GLOBALS['setting']['rightcustom'] == "0%" and

$GLOBALS['setting']['leftcustom'] != "0%" and $_GET['code'] != null)

{

if($Data['align'] == 'left' or $Data['align'] == 'right')

$leftboxes .= $this->data[$Data['name']];

else if($Data['align'] == 'middle')

{

if($Data['name'] == "news")

{

$middleboxes.= $this->data[$_GET['code']];

}

else

$middleboxes .= $this->data[$Data['name']];

}

}

 

else if($GLOBALS['setting']['leftcustom'] == "0%" and

$GLOBALS['setting']['rightcustom'] == "0%" and $_GET['code'] != null)

{

if($Data['align'] == 'middle')

{

if($Data['name'] == "news")

{

$middleboxes.= $this->data[$_GET['code']];

}

else

$middleboxes .= $this->data[$Data['name']];

}

}

 

else if($GLOBALS['setting']['leftcustom'] != "0%" and

$GLOBALS['setting']['rightcustom'] != "0%" and $_GET['code'] != null)

{

if($Data['align'] == 'left')

$leftboxes .= $this->data[$Data['name']];

else if($Data['align'] == 'right')

$rightboxes .= $this->data[$Data['name']];

else if($Data['align'] == 'middle')

{

if($Data['name'] == "news")

{

$middleboxes.= $this->data[$_GET['code']];

}

else

$middleboxes .= $this->data[$Data['name']];

}

}

}

 

//The Widths

 

if($GLOBALS['setting']['left'] == null)

$GLOBALS['setting']['left'] = "21%";

 

if($GLOBALS['setting']['middle'] == null)

$GLOBALS['setting']['middle'] = "51%";

 

if($GLOBALS['setting']['right'] == null)

$GLOBALS['setting']['right'] = "21%";

 

if($GLOBALS['setting']['leftcustom'] == null)

$GLOBALS['setting']['leftcustom'] = "21%";

 

if($GLOBALS['setting']['middlecustom'] == null)

$GLOBALS['setting']['middlecustom'] = "51%";

 

if($GLOBALS['setting']['rightcustom'] == null)

$GLOBALS['setting']['rightcustom'] = "21%";

 

if($_GET['code'] != null)

{

$GLOBALS['setting']['left'] = $GLOBALS['setting']['leftcustom'];

$GLOBALS['setting']['middle'] = $GLOBALS['setting']['middlecustom'];

$GLOBALS['setting']['right'] = $GLOBALS['setting']['rightcustom'];

}

 

// render the portal

 

$output = $this->html->render_top($leftboxes, $announcement);

 

$output .= $this->html->render_middle($middleboxes);

 

$output .= $this->html->render_bottom($rightboxes);

 

$output .= "

<table cellpadding='0' cellspacing='0' border='0' width='100%' align='center'>

<tr>

<td align='center'>";

 

$toout =

base64_decode('UG93ZXJlZCBieSBVbnJlYWwgUG9ydGFsIHYyLjAuNCCpIDIwMDUgPGEgaHJlZj0

naHR0cDovL3d3dy51bnJlYWwtc29sdXRpb25zLm9yZycgdGFyZ2V0PSdfYmxhbmsnPlVucmVhbCBTb

2x1dGlvbnMuPC9hPg==');

 

$output .= "

</td>

</tr>

</table>";

 

if($ibforums->lang[base64_decode('Y29weXJpZ2h0')] != $toout)

{

$ibforums->lang['john'] =

base64_decode('UGxlYXNlIGRvIG5vdCBlZGl0IHRoZSBwb3J0YWwgY29weXJpZ2h0Lg==');

$std->Error( array( LEVEL => 1, MSG => 'john') );

}

 

$output .= "<div align='center'>$toout</div>";

 

$this->output = $output;

 

// done

$this->page_title = $ibforums->vars['board_name'];

$this->nav= array( $ibforums->lang['page_title'] );

 

$print->add_output("$this->output");

$print->do_output( array( 'TITLE' => $this->page_title, 'JS' => 0, NAV =>

$this->nav ) );

}

 

//*********************************************/

// Collapse

//*********************************************/

 

function collapse($name)

{

global $DB, $ibforums, $std;

 

$collapsed_ids = ','.$std->my_getcookie('collapseprefs').',';

 

$show['div_fo'] = 'show';

$show['div_fc'] = 'none';

 

if ( strstr( $collapsed_ids, $name ) )

{

$show['div_fo'] = 'none';

$show['div_fc'] = 'show';

}

 

return $show;

}

 

//*********************************************/

// Announcement

//*********************************************/

 

function do_announcement()

{

global $DB, $ibforums, $std, $HTTP_POST_VARS;

 

if (($GLOBALS['setting']['announcement']) and

($GLOBALS['setting']['announcement_text']))

{

 

//doHTML

$GLOBALS['setting']['announcement_text'] =

$this->parser->post_db_parse_html($GLOBALS['setting']['announcement_text']);

 

$output .= $this->html->block_header($this->collapse("announcement"),

"announcement");

$output .= $this->html->announcement();

$output .= $this->html->block_footer();

return $output;

}

else

return '';

}

 

//*********************************************/

// Show Calendar

//*********************************************/

function do_calendar()

{

global $std, $DB, $ibforums;

 

if (!($GLOBALS['block']['calendar']))

return '';

 

$ibforums->vars['bday_show_cal_max'] = 5;

 

//-----------------------------------------

// Prep our chosen dates

//-----------------------------------------

 

// There is something whacky with getdate and GMT

// This handrolled method seems to take into account

// DST where getdate refuses.

 

$a = explode( ',', gmdate( 'Y,n,j,G,i,s', time() + $std->get_time_offset() ) );

 

$this->now_date = array(

'year' => $a[0],

'mon' => $a[1],

'mday' => $a[2],

'hours' => $a[3],

'minutes' => $a[4],

'seconds' => $a[5]

);

 

if ( $ibforums->input['year'] )

{

$ibforums->input['y'] = $ibforums->input['year'];

}

 

$this->chosen_month = $this->now_date['mon'];

$this->chosen_year = $this->now_date['year'];

 

//-----------------------------------------

// Get the timestamp for our chosen date

//-----------------------------------------

 

$this->our_datestamp = mktime( 0,0,1, $this->chosen_month, 1, $this->chosen_year);

$this->first_day_array = getdate($this->our_datestamp);

 

//-----------------------------------------

// Finally, build up the lang arrays

//-----------------------------------------

 

$this->day_words = array( "S", "M", "T", "W", "T", "F", "S" );

 

return $this->get_mini_calendar( $this->chosen_month, $this->chosen_year );

}

 

function get_mini_calendar($month, $year)

{

global $ibforums, $DB, $std;

 

foreach ($this->day_words as $day)

{

$cal_output .= $this->html->mini_cal_day_bit( substr($day,0,1) );

}

 

//-----------------------------------------

// Print the main calendar body

//-----------------------------------------

 

$cal_output .= $this->get_month_events( $month, $year, 1 );

 

return $this->html->mini_cal_mini_wrap($this->collapse("calendar"),"calendar",

$cal_output);

}

 

function _get_events_sql($month, $year)

{

global $ibforums, $DB, $std;

 

$timenow = mktime( 0, 0, 1 , $month, 1, $year);

$timethen = mktime( 23, 59, 59, $month, 0, $year);

 

//-----------------------------------------

// Get the events

//-----------------------------------------

 

if ( ! is_array( $this->query_event_cache[ $month ] ) )

{

$DB->simple_construct( array( 'select' => '*',

'from' => 'calendar_events',

'where' => "event_repeat <> 1 AND month={$month} AND year={$year}

OR (event_ranged=1 AND

( unix_stamp < $timenow AND end_unix_stamp > $timenow ) )

OR (event_repeat=1 AND ( repeat_unit IN ('w','m') OR

(repeat_unit='y' AND month={$month}) ) )" ) );

$DB->simple_exec();

 

while ( $r = $DB->fetch_row() )

{

$this->query_event_cache[ $month ][] = $r;

}

}

}

 

function _get_birthday_sql($month)

{

global $ibforums, $DB, $std;

 

if ( ! is_array( $this->bday_cache[ $month ] ) )

{

&nbsp

Ссылка на комментарий
Поделиться на других сайтах

  • 0

У меня та же трабла что и у bartik

 

только вот заметил особенность...

зарегестрированные пользователи могут без проблем входить на портал в отличии от гостей..помогите пожалуйста !

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.