2017-02-26 17 views
0

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

'$ post'が期待しているものを返すようにデバッグを追加しましたか? – Theo

+0

あなたは 'uid = '"を選択しようとしている投稿を削除しませんでしたか?$ post [' uid '] '? –

+0

@Paul Mybbはフックで動作します。投稿を選択した後、実際に削除する前に実行する必要があります。 – Senya

答えて

0

OK私は私の問題を発見した:上記

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

です文字列。私はそれが選択クエリのために必要です。しかし、この部分のhierは明らか配列を参照:

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

それが最善の解決策ではないかもしれないが、今、私はこのような何かをやったし、それが動作します:

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

最初のために使用されています選択クエリと2番目はin_arrayの

助けてくれてありがとう! (私はまだもっと洗練されたソリューションの提案があります:))

関連する問題