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