參考連結:http://phpbb-tw.net/phpbb/viewtopic.php?p=202043#202043
使用版本:phpBB 2.0.21
網站位置:http://2306zone.com/index.php
狀況描述: 最後發表的文章最尾有時會出現 ? 的情況
代碼: 選擇全部
#
#--------[OPEN]----------------
#
index.php
#
#--------[ FIND ]----------------
#
default:
$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
#
#-----[ IN LINE FIND 繼續在這一行尋找 ]------------------------
#
u.user_id
#
#-----[ IN LINE AFTER, ADD 在指定之後, 加上 ]----------------
#
,substring(pt.topic_title,1,[color=red]18[/color]) as topic_title
先看a圖...
這個主題全名是原來男人之苦入面果個係梁靖琪黎ga@o@
(抱歉...香港的論壇...用口語= =)
而原來男人之苦入面果就剛剛好18 byte
沒有錯誤~一切平常^^
但到了b圖
最尾多了一個?
這個主題全名是[轉貼] 有趣女性名字資料-香港的某大學統計
可惜...[轉貼] 有趣女性名只有17 byte
如果電腦用1 byte去顯示字(最多18 byte)
就只會出現?(中文字耍2 byte唷^^)
簡單來說...如果主題不要一次性抽出18 byte的話 , 最後一個字就會變了?
我到過水色看看...它的最後發表是以...顯示的~
但小分不才...搞了半天都搞不好...
也看過心大的文章http://phpbb-tw.net/phpbb/viewtopic.php?p=237418#237418
(上半部分我想只是Fily兄的小錯誤而且...而, t.topic_title, t.topic_id我猜是其他外掛...猜錯不要笑><")
#
#-----[ FIND ]-----
#
代碼: 選擇全部
FROM ((( " . FORUMS_TABLE . " f
LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_id = p.topic_id )
LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
ORDER BY f.cat_id, f.forum_order";
#-----[ REPLACE WITH ]-----
#
代碼: 選擇全部
FROM (((( " . FORUMS_TABLE . " f
LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_id = p.topic_id )
LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
LEFT JOIN " . TOPICS_TABLE . " pt ON pt.topic_id = p.topic_id )
ORDER BY f.cat_id, f.forum_order";
我試過判斷一個文章是否能夠顯示出18 byte , 如否 , 就用17 byte...(index.php及veiwforum.php都有)
可惜小弟對php實在了解不深...只是用c++的語法慢慢譯成php= =...最後當然失敗...
希望大大指點指點...
送上index一個 http://2306zone.com/index.zip