mybb-forum에 함수가 있습니다. 트랙은 특정 포럼에 의존하고 회원 페이지에 날짜를 표시하는 플러그인의 일부입니다 (다른 것들 중에서).Mybb 업데이트 쿼리가 작동하지 않습니다.
이 부분은 사용자가 자신의 게시물을 삭제 한 경우입니다. 그런 다음 설정 포럼에서 삭제 된 게시물 이전의 마지막 게시물을 찾아 해당 사용자의 회원 페이지에 해당 날짜를 표시해야합니다.
그러나 update-query가 작동하지 않아 문제가 무엇인지 알 수 없습니다.
여기 내 코드입니다. 오류는 없지만 데이터베이스에 기록하지는 않습니다.
function lastippost_update($pid)
{
global $db, $mybb;
$query = $db->simple_select("posts","fid,uid,dateline","pid='{$pid}'");
$post = $db->fetch_array($query);
if ($mybb->settings['lastippost'] != '')
{
$ipids = $mybb->settings['lastippost'];
if (in_array($post['fid'], $ipids))
{
$ipquery = $db->write_query("SELECT uid,dateline FROM ".TABLE_PREFIX."posts WHERE fid IN ($ipids) AND uid='".$post['uid']."' ORDER BY dateline DESC LIMIT 1 OFFSET 1");
$ippost = $db->fetch_array($ipquery);
$db->update_query("users", array('lastippost' => $ippost['dateline']), "uid='".$ippost['uid']."'");
}
}
}
$ ipids는 포럼 ID의 쉼표로 구분 된 목록입니다. 그 도움이된다면
난 몰라하지만 난 작동합니까 오히려 비슷한 코드 의 또 다른 비트가 :
$ipids = $mybb->settings['lastippost'];
$ipquery = $db->write_query("SELECT uid, dateline FROM ".TABLE_PREFIX."posts WHERE fid IN ($ipids) ORDER BY uid,dateline DESC");
while ($ippost = mysql_fetch_assoc($ipquery))
{
if($ippost['uid'] != $lastuid)
{
$db->update_query("users", array('lastippost' => $ippost['dateline']), "uid='".$ippost['uid']."'");
}
$lastuid = $ippost['uid'];
}
당신은'$ post'가 당신이 기대하는 것을 반환하고 있는지 확인하기 위해 디버그를 추가 했습니까? – Theo
'uid =' "를 선택하려는 게시물을 삭제하지 않았습니까? $ post [ 'uid']'? –
@Paul Mybb는 후크와 함께 작동합니다. 여기에서 사용하는 후크는 삭제하기 전에 설정됩니다. 게시물을 선택한 후 실제로 삭제하기 전에 실행해야합니다. – Senya