在viewtopic.php裡面有一段
- 代碼: 選擇全部
$sql="SELECT * FROM week9_userdata where userid = ".$postrow[$i]['user_id']." and dafaultuse = '1' and (face_fitherd = '$sex' or face_fitherd = 't')";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query week9_userdata', '', __LINE__, __FILE__, $sql);
}
while ($usercaifu = $db->sql_fetchrow($result))
{
$tempi = $usercaifu[classid];
$cookiearray[$tempi] = $usercaifu[facepicid];
$face_weardate = floor($usercaifu[face_wear] - (time() - $usercaifu[buydata])/8640);
if ($face_weardate <= 0)
{
$db->sql_query("UPDATE week9_userdata SET dafaultuse = '3' WHERE userid=".$postrow[$i]['user_id']." and facepicid = '$usercaifu[facepicid]' and classid= '$usercaifu[classid]' and dafaultuse='1'");
if($usercaifu[classid] == 8||$usercaifu[classid]==9||$usercaifu[classid]==11||$usercaifu[classid]==13||$usercaifu[classid]==14||$usercaifu[classid]==18)
{
$userupid = $upid;
}
else
{
$userupid = "0";
}
$weararray[$tempi] = $userupid;
}
else
{
$weararray[$tempi] = $face_weardate;
}
}
$db->sql_freeresult($result);
這段於法由於是放在顯示主題所回覆內容的迴圈裡面
該討論主題內,會員使用的虛擬形象越多,會造成越多的query
改進的方法如下
在檔案內找尋
- 代碼: 選擇全部
$postrow = array();
後面加上
- 代碼: 選擇全部
$postrow_userid = array();
找尋
- 代碼: 選擇全部
$postrow[] = $row;
後面加上
- 代碼: 選擇全部
$postrow_userid[]=$row['user_id'];
找尋
- 代碼: 選擇全部
sync('topic', $topic_id);
message_die(GENERAL_MESSAGE, $lang['No_posts_topic']);
}
後面加上
- 代碼: 選擇全部
$sql="SELECT userid,classid,facepicid FROM week9_userdata where userid in (".implode(',',$postrow_userid).") and dafaultuse = '1' order by userid";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Could not query week9_userdata.", '', __LINE__, __FILE__, $sql);
}
unset($postrow_userid);
$face_user = array();
while( $row = $db->sql_fetchrow($result) )
{
$face_user[$row['userid']][]=$row;
}
$db->sql_freeresult($result);
找尋
- 代碼: 選擇全部
$sql="SELECT * FROM week9_userdata where userid = ".$postrow[$i]['user_id']." and dafaultuse = '1' and (face_fitherd = '$sex' or face_fitherd = 't')";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query week9_userdata', '', __LINE__, __FILE__, $sql);
}
while ($usercaifu = $db->sql_fetchrow($result))
{
$tempi = $usercaifu[classid];
$cookiearray[$tempi] = $usercaifu[facepicid];
$face_weardate = floor($usercaifu[face_wear] - (time() - $usercaifu[buydata])/8640);
if ($face_weardate <= 0)
{
$db->sql_query("UPDATE week9_userdata SET dafaultuse = '3' WHERE userid=".$postrow[$i]['user_id']." and facepicid = '$usercaifu[facepicid]' and classid= '$usercaifu[classid]' and dafaultuse='1'");
if($usercaifu[classid] == 8||$usercaifu[classid]==9||$usercaifu[classid]==11||$usercaifu[classid]==13||$usercaifu[classid]==14||$usercaifu[classid]==18)
{
$userupid = $upid;
}
else
{
$userupid = "0";
}
$weararray[$tempi] = $userupid;
}
else
{
$weararray[$tempi] = $face_weardate;
}
}
$db->sql_freeresult($result);
替換成
- 代碼: 選擇全部
for($face_count=0;$face_count<count($face_user[$postrow[$i]['user_id']]);$face_count++)
{
$tempi = $face_user[$postrow[$i]['user_id']][$face_count]['classid'];
$cookiearray[$tempi] = $face_user[$postrow[$i]['user_id']][$face_count]['facepicid'];
}
$userface = implode("-", $cookiearray);
#####到此修改結束#####
接著你可能會問下面段跑哪去了
- 代碼: 選擇全部
$face_weardate = floor($usercaifu[face_wear] - (time() - $usercaifu[buydata])/8640);
if ($face_weardate <= 0)
{
$db->sql_query("UPDATE week9_userdata SET dafaultuse = '3' WHERE userid=".$postrow[$i]['user_id']." and facepicid = '$usercaifu[facepicid]' and classid= '$usercaifu[classid]' and dafaultuse='1'");
if($usercaifu[classid] == 8||$usercaifu[classid]==9||$usercaifu[classid]==11||$usercaifu[classid]==13||$usercaifu[classid]==14||$usercaifu[classid]==18)
{
$userupid = $upid;
}
else
{
$userupid = "0";
}
$weararray[$tempi] = $userupid;
}
else
{
$weararray[$tempi] = $face_weardate;
}
這段式判斷你身上的衣服是否過期
我覺得舊衣櫃這功能很無聊,強迫人換衣服
所以就把這功能拿掉了
若你想把這功能加上去
改法也很簡單(但是我沒測試過)
把
- 代碼: 選擇全部
userid,classid,facepicid
改成
- 代碼: 選擇全部
*
在
- 代碼: 選擇全部
$cookiearray[$tempi] = $face_user[$postrow[$i]['user_id']][$face_count]['facepicid'];
之後加上
- 代碼: 選擇全部
$face_weardate = floor($face_user[$postrow[$i]['user_id']][$face_count][face_wear] - (time() - $face_user[$postrow[$i]['user_id']][$face_count][buydata])/8640);
if ($face_weardate <= 0)
{
$db->sql_query("UPDATE week9_userdata SET dafaultuse = '3' WHERE userid=".$postrow[$i]['user_id']." and facepicid = '$face_user[$postrow[$i]['user_id']][$face_count][facepicid]' and classid= '$face_user[$postrow[$i]['user_id']][$face_count][classid]' and dafaultuse='1'");
if($face_user[$postrow[$i]['user_id']][$face_count][classid] == 8||$face_user[$postrow[$i]['user_id']][$face_count][classid]==9||$face_user[$postrow[$i]['user_id']][$face_count][classid]==11||$face_user[$postrow[$i]['user_id']][$face_count][classid]==13||$face_user[$postrow[$i]['user_id']][$face_count][classid]==14||$face_user[$postrow[$i]['user_id']][$face_count][classid]==18)
{
$userupid = $upid;
}
else
{
$userupid = "0";
}
$weararray[$tempi] = $userupid;
}
else
{
$weararray[$tempi] = $face_weardate;
}