gpt4 book ai didi

php - Mybb 更新查询不起作用

转载 作者:行者123 更新时间:2023-11-29 19:20:46 24 4
gpt4 key购买 nike

我的 mybb 论坛中有一个功能。它是一个插件的一部分,用于跟踪对某些论坛的依赖并在成员(member)页面上显示日期(除其他外)。

这部分是针对用户删除帖子的情况。然后,它应该在设置的论坛中找到已删除帖子之前的最后一篇帖子,并在该用户的成员(member)页面上显示该(较早的)日期。

但是更新查询不起作用,我不知道问题是什么。

这是我的代码。没有错误,但也没有写入数据库。

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'];
}

最佳答案

好吧,我发现了我的问题:

$ipids = $mybb->settings['lastippost'];

上面是一个字符串。我需要它用于选择查询。但这部分 hier 显然引用了一个数组:

if (in_array($post['fid'], $ipids))

这可能不是最好的解决方案,但现在我已经做了类似的事情并且它有效:

$ipids = $mybb->settings['lastippost'];
$ipids2 = explode(",", trim($ipids));

第一个用于选择查询,第二个用于 in_array

感谢您的帮助! (我仍然愿意接受更优雅的解决方案的建议:))

关于php - Mybb 更新查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42464137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com