[移機修改]檢視近日發表的文章錯誤

phpBB 大部分皆是由竹貓星球提供資料!
頭像
懸壺子
系統管理員
系統管理員
主題中的帖子: 2
文章: 33357
註冊時間: 2001-10-05 , 10:10
個人狀態: 道骨學習佛心..^^..
貼心留言: 氣候不穩
性別: 公仔
來自: 黃金故鄉
聯繫:

[移機修改]檢視近日發表的文章錯誤

未閱讀文章 懸壺子 »

[移機修改]檢視近日發表的文章錯誤

代碼: 選擇全部

 Message   
一般錯誤 
  
could not obtain main information.

DEBUG MODE

SQL Error : 1054 Unknown column 't.topic_first_post_id' in 'on clause'

SELECT t.*, p.poster_id, p.post_username AS last_poster_name, p.post_id, p.post_time, f.forum_name, f.forum_id, u.username AS last_poster, u.user_id AS last_poster_id, u2.username AS first_poster, u2.user_id AS first_poster_id, p2.post_username AS first_poster_name FROM phpbb_topics t, phpbb_posts p LEFT OUTER JOIN phpbb_posts p2 ON p2.post_id = t.topic_first_post_id LEFT OUTER JOIN phpbb_forums f ON p.forum_id = f.forum_id LEFT OUTER JOIN phpbb_users u ON p.poster_id = u.user_id LEFT OUTER JOIN phpbb_users u2 ON u2.user_id = t.topic_poster WHERE t.forum_id NOT IN ('start') AND p.post_id = t.topic_last_post_id AND FROM_UNIXTIME(p.post_time,'%Y%m%d') - FROM_UNIXTIME(unix_timestamp(NOW()),'%Y%m%d') = 0 ORDER BY t.topic_last_post_id DESC LIMIT 0, 10

Line : 127
File : recent.php
產生上面的錯誤
在下根據下面竹貓星球改變
在下的Appserv2.46版

recent.php裡的這句

代碼: 選擇全部

FROM ". TOPICS_TABLE ." t, ". POSTS_TABLE ." p 
改成這樣再試看看

代碼: 選擇全部

FROM (". TOPICS_TABLE ." t, ". POSTS_TABLE ." p) 
圖檔
頭像
懸壺子
系統管理員
系統管理員
主題中的帖子: 2
文章: 33357
註冊時間: 2001-10-05 , 10:10
個人狀態: 道骨學習佛心..^^..
貼心留言: 氣候不穩
性別: 公仔
來自: 黃金故鄉
聯繫:

Re: [移機修改]檢視近日發表的文章錯誤

未閱讀文章 懸壺子 »

在下參考
http://phpbb-tw.net/phpbb/viewtopic.php?t=43002

~倉木麻衣~發布


剛在VMWare裡安裝Appser 2.4.5版來做測試底下的SQL

代碼: 選擇全部

SELECT t. * , p.poster_id, p.post_username AS last_poster_name, p.post_id, p.post_time, f.forum_name, f.forum_id, u.username AS last_poster, u.user_id AS last_poster_id, u2.username AS first_poster, u2.user_id AS first_poster_id, p2.post_username AS first_poster_name 
FROM phpbb_topics t, phpbb_posts p 
LEFT OUTER JOIN phpbb_posts p2 ON p2.post_id = t.topic_first_post_id 
LEFT OUTER JOIN phpbb_forums f ON p.forum_id = f.forum_id 
LEFT OUTER JOIN phpbb_users u ON p.poster_id = u.user_id 
LEFT OUTER JOIN phpbb_users u2 ON u2.user_id = t.topic_poster 
WHERE t.forum_id NOT 
IN ( 65, 63, 85, 86 ) AND p.post_id = t.topic_last_post_id AND FROM_UNIXTIME( p.post_time, '%Y%m%d' ) - FROM_UNIXTIME( unix_timestamp( NOW( ) ) , '%Y%m%d' ) =0 
ORDER BY t.topic_last_post_id DESC 
LIMIT 0 , 10 
結果就如一平所講的, 會出現這個錯誤訊息
SQL Error : 1054 Unknown column 't.topic_first_post_id' in 'on clause'

後來去MySQL官方查了一下5.0版的join語法, 發現在FROM後若有接二個以上的資料表, 大部份都有用()括號括起來
於是我就將上述的SQL改成

代碼: 選擇全部

SELECT t. * , p.poster_id, p.post_username AS last_poster_name, p.post_id, p.post_time, f.forum_name, f.forum_id, u.username AS last_poster, u.user_id AS last_poster_id, u2.username AS first_poster, u2.user_id AS first_poster_id, p2.post_username AS first_poster_name 
FROM (phpbb_topics t, phpbb_posts p) 
LEFT OUTER JOIN phpbb_posts p2 ON p2.post_id = t.topic_first_post_id 
LEFT OUTER JOIN phpbb_forums f ON p.forum_id = f.forum_id 
LEFT OUTER JOIN phpbb_users u ON p.poster_id = u.user_id 
LEFT OUTER JOIN phpbb_users u2 ON u2.user_id = t.topic_poster 
WHERE t.forum_id NOT 
IN ( 65, 63, 85, 86 ) AND p.post_id = t.topic_last_post_id AND FROM_UNIXTIME( p.post_time, '%Y%m%d' ) - FROM_UNIXTIME( unix_timestamp( NOW( ) ) , '%Y%m%d' ) =0 
ORDER BY t.topic_last_post_id DESC 
LIMIT 0 , 10 
結果就正常了

建議您將recent.php裡的這句

代碼: 選擇全部

FROM ". TOPICS_TABLE ." t, ". POSTS_TABLE ." p 
改成這樣再試看看

代碼: 選擇全部

FROM (". TOPICS_TABLE ." t, ". POSTS_TABLE ." p) 
圖檔
版面鎖定 主題已鎖定

回到「phpBB2」