検索

ホームページ  >  に質問  >  本文

thinkphp のページ分割されたデータをクエリするときに、キャッシュが設定されていて 2 ページ目が読み取れない場合、どうすればキャッシュを解除できますか?

thinkphp でページ分割されたデータをクエリする場合、キャッシュが設定されている場合、最初のページのみが表示されます。これを解除するにはどうすればよいですか?
つまり、12>> この効果が出ますが、2をクリックすると1ページ目の内容が表示されたままになります。

$count=M('visitdata')->where(array('works_code'=>$get_code))->count();
$Page=new \Think\Page($count,10);
$show=$Page->show();

S($get_code.'visitdata',null); //最初にキャッシュをクリアしないと、ページ 1 のみが表示されます...
// ページング データのクエリを実行します。ここでキャッシュが設定されている場合、ページ 1 のみが表示されます。
M('visitdata')->cache($get_code.'visitdata',60)->where(array('works_code'=>$get_code))->order('visit_id')->limit ($Page->firstRow.','.$Page->listRows)->select();
$cache_visitdata=S($get_code.'visitdata');

$this->assign(array(
    'コード'=>$get_code,
    'visitdata'=>$cache_visitdata
));
$this->assign('ページ',$show);
$this->display();

12 >> このような効果が出ますが、2をクリックすると1ページ目の内容が表示されたままになります。
どうやって壊すの?

怪我咯怪我咯2753日前540

全員に返信(5)返信します

  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:06:24

    これは tp3.2 ですが、長い間使用していなかったので、質問者は次のことを行うことができます。

    • ページ番号を取得

    • ページ番号に対応するキャッシュが存在するかどうかを確認します(キャッシュキーは次のように記述できます:

      )'content_page_' . $page

    • キャッシュが存在する場合に返す

    • キャッシュが存在しない場合は、データベースクエリを実行してコピーをキャッシュし、次回リクエストが届いたときに直接キャッシュされます

    主な問題はキャッシュされたキーの値にあると思います。

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:06:24

    sキーとページングマーク

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:06:24

    デバッグ用に SQL ステートメントを出力し、まず SQL が実行している内容を確認してから、問題を見つけます

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:06:24

    ここにあるもの: ->cache($get_code.'visitdata',60)
    $get_code.'visitdata' はページングの場合と同じであるため、更新されません。
    このキーにはページ番号を含めることができるはずです。

    返事
    0
  • 怪我咯

    怪我咯2017-05-16 13:06:24

    リーリー

    返事
    0
  • キャンセル返事