現在の ID が存在するページを見つけます。
フィールド ID: 値 1~27
ページング時: 1 ページあたり 8 つのデータが表示されます
ID を指定して、この ID が位置するページの数を見つけます
私のアイデア:
$arr=array();for(int i=0;i<maxpage;i++){$sql=(select id from table limit i*8,(i+1)*8); $arr[$i]+=$this->db->getAll($sql);}$arr={[0]=>(1~8)[1]=>(9~16)[2]=>(17~24)[3]=>(25~27)}让id 与数组$arr的value 比较 ,相同的话 获取出 key后+1就是它所在的页面
ディスカッションへの返信(解決策)
idが連続していると仮定し、idの昇順にページを生成すると、
$pagenumber = ceil($id / 8);
idが連続していると仮定
$pagenumber = ceil($id / 8);
$pagenumber = ceil($id / 8);
id が連続していない場合、ユーザーはデータを削除するか、
がどこにあるかによってフィルタリングされる可能性があります継続的ではないですか?次に、ID の分布を知る必要があります
不連続ですか?次に、ID の分布を知る必要があります
ID の分布は不連続です
または、データベース内のすべての ID を見つけて値を比較し、キーを取得してから ceil((key+1)/ 8) は、そのページの数です
データが多いと非常に遅くなります
IDを与えて、不連続なIDの中から正の順序でこのIDが位置するページの番号と位置を見つけます(各ページが X に分割されていると仮定します)
例
1: Known id=5 id{1,2,5,9,10}, X=2 この場合、既知の ID は 2 ページ目の最初の位置になります
2 : 既知の ID=9 id{1,2,3, 7,9,10} X=2 すると、既知の ID は 3 ページ目の最初の位置になります
これは、すべての ID を取り出すことによってのみ行うことができます。 そしてそれらを順番に番号付けし、
そして指定された ID 番号を取得します、
$pagenumber = ceil( $number / 8);
ID が次の場合、
//已知id=5 id{1,2,5,9,10}, X=2 那么 已知id在第二页的第一个位置$id = 5;$a = array(1,2,5,9,10);$x = 2;$p = array_search($id, $a);echo ceil($p / $x) + 1; //2//已知id=9 id{1,2,3,7,9,10} X=2 那么 已知id在第三页的第一个位置$id = 9;$a = array(1,2,5,9,10);$x = 2;$p = array_search($id, $a);echo ceil($p / $x) + 1; //3
$id = 9;$a = array(1,5,9,2,10);$x = 2;$p = array_search($id, $a);echo ceil($p / $x) + 1; //2
これは、すべての ID を取り出し、
順番に番号を付け、
指定された ID の番号を取得することによってのみ実行できます、
$pagenumber = ceil($数値/8);
または、最初のページを検索します。最初の ID を取得します。 id. ページ数を確認します。
これは、すべての ID を取得することによってのみ実行できます。
次に、指定された ID の番号を取得します。
$pagenumber = ceil( $数値 / 8);
データが多い場合、この方法は適していません
重要なのは、ID が不連続であることです。各ページの最初の ID が何であるかをどうやって知ることができますか?
連番も必要ですが、もう少し簡単で、0を選択〜IDを指定するだけでOKです
IDセクションについて1.最初のページから全てのIDを一括でクエリします
2.最大のページに移動します
最初のページの最初の ID が <既知の ID であるかどうかを判断します。はいの場合、2 番目のページの最初の ID が <既知の ID であるかどうかを確認します。方法は少ないようですが、データベースを使用する回数が多くなります
最初に1つの関数を使用して作成する方が良いです。良い方法があれば、教えて参考にさせてください
したいので。データベースにクエリを実行します。これを実行できます
select id, ceil(@s/每页行数) as page, @s:=@s+1 from 表, (select @s:=1) t HAVING id=$id
問題があります。これが正しい方法です
select id, page from (select id, ceil(@s/每页行数) as page, @s:=@s+1 from 表, (select @s:=1) t ) t1 where id=$id
問題があります、これは正しい方法
select id, page from (select id, ceil(@s/每页行数) as page, @s:=@s+1 from 表, (select @s:=1) t ) t1 where id=$id
":= "主に外部パラメータを渡したり、ステートメント内の変数に値を割り当てるために使用されます
@s:=@s+1 @s: =1 変数の代入を 2 回行っていますか
この技術的な書き方はあなたの理解度に依存します
通常の書き方は
set @s:=1;select id, ceil(@s/每页行数) as page, @s:=@s+1 from 表
ただし、 SQL 攻撃を防ぐため、PHP では 2 つ以上の命令を同時に実行することができないため、デカルト接続が使用されます
(select @s:=1) は、ユーザー変数 @ に初期値を割り当てるだけです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。
