目次
ディスカッションに返信(解決策)
ホームページ バックエンド開発 PHPチュートリアル thinkphp でのページング中にクエリ条件を変更しない問題

thinkphp でのページング中にクエリ条件を変更しない問題

Jun 23, 2016 pm 01:48 PM
thinkphp ページネーション 状態 お問い合わせ

マニュアルでは:

import('ORG.Util.Page');// 导入分页类$mapcount      = $User->where($map)->count();// 查询满足要求的总记录数$Page       = new Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数//分页跳转的时候保证查询条件foreach($map as $key=>$val) {    $Page->parameter   .=   "$key=".urlencode($val).'&';}$show       = $Page->show();// 分页显示输出
ログイン後にコピー


ここで私のクエリ条件は
$map['code'] = array('in',$array); を使用しています
2 ページ目をクリックすると、クエリ条件は成功しません。ここではinは使えないって本当ですか?


ディスカッションに返信(解決策)

urlencode だけでは不十分です。最初に json 化するかシリアル化する必要があります

foreach($map as $key=>$val) {    $Page->parameter   .=   "$key=".urlencode(json_encode($val)).'&';}
ログイン後にコピー

これに変更してもまだ機能しません。

$array はどこから来たのですか? $_GET $_POST または $_REQUEST

ここでの $array は、データベース内のテーブルをクエリしてフィールド値の配列を取得するための条件として $_POST のパラメーターを使用することです。

私もこの問題に遭遇し、解決策を見つけました
import('ORG.Util.Page');// ページング クラスをインポートします
$count=$res->where($sear)-> count(); //データ項目数をクエリする
$Page=new Page($count,2);//ページング関数をインスタンス化する
//ページングジャンプ時のクエリ条件を確認する
foreach($sear as $key=> ;$val ) {
if(!is_array($val)) {
$Page->parameter .= "$key=".urlencode($val)."&";//ページに値を代入
}
}
$ show=$Page->show(); // ページングで出力を表示します

それを実現するためにここに判定を追加します

配列の内容は次のとおりです:
$map['code'] = array('in ',$ array);

しかし、クエリ条件は次のとおりです:
"$key=".urlencode($val).'&'

もちろんこれは機能しません

上記はまだ機能しません

foreach($ $key =>$val) {
$Page->parameter .= "$key=".urlencode($val).'&';
echo "$key=".urlencode($val). "&"; //出力を見てください
}

解決策を探しています
//ページにジャンプするときのクエリ条件を確認してください
foreach($map as $key=>$val) {
$Page- >parameter .= "$key=".urlencode($val).'&';
}
"$key=".urlencode($val).'&';ここでの $val はあなたのものを指します条件
あなたの条件は $map['code'] = array('in',$array); です。 次に、それを
foreach($map as $key=>$val) {
$Page->parameter に変更します。 = "$key=".urlencode($code).'&';
}

foreach($map as $key=>$val) の前に $map を見られませんか {

(print_r( $map ))
データの保存方法を知っているなら、その方法も知りませんか?

//クエリ

public function search() {
$res=D('Info');
$sear['name'] = array('like', '%'.$name.'%');
import('ORG.Util.Page');//ページング クラスをインポートします
$count=$res->where($sear)->count(); //データ件数を問い合わせる
$Page=new Page($count,2);//ページング関数をインスタンス化する
//ページングにジャンプする際の問い合わせ条件を確認する
foreach($name as $key=>$ val) {
$Page->parameter .= "$key=".urlencode($val)."&";//ページに値を代入
}
$show=$Page->show();/ /Page 表示 出力
これは私が使用したクエリ ページング コードです。見てください。先ほど投稿したものは見つかりますが、ルールに準拠していません

これは http://blog.sina をまとめたドキュメントです。 .com.cn/s /blog_80742e010101acfq.html をご覧ください

皆さんありがとうございます。それでもまだ機能しません。

page.class.php のソースコードを詳しく見てみましょう。 page->show メソッドで page->パラメータが処理されます。パラメーター属性は、文字列と配列という 2 つの値を渡す方法をサポートしています。文字列の形式は var1=val1&var2=val2.... です。ソースコードの処理を参照してください:

$url  =  $_SERVER['REQUEST_URI'].(strpos($_SERVER['REQUEST_URI'],'?')?'':"?").$this->parameter;        $parse = parse_url($url);        if(isset($parse['query'])) {            parse_str($parse['query'],$params);            unset($params[$p]);            $url   =  $parse['path'].'?'.http_build_query($params);        }
ログイン後にコピー


この場合、in、like、between の条件を処理することは確かに不可能です。

投稿者にどうやって解決したか聞いてもいいですか

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Xuexin.com で学歴を確認する方法 Xuexin.com で学歴を確認する方法 Mar 28, 2024 pm 04:31 PM

Xuexin.com で私の学歴を確認するにはどうすればよいですか? Xuexin.com で学歴を確認できますが、多くのユーザーは Xuexin.com で学歴を確認する方法を知りません。次に、エディターが Xuexin.com で学歴を確認する方法に関するグラフィック チュートリアルを提供します。興味のあるユーザーはぜひ見に来てください! Xuexin.com の使用方法チュートリアル: Xuexin.com で学歴を確認する方法 1. Xuexin.com の入り口: https://www.chsi.com.cn/ 2. Web サイトのクエリ: ステップ 1: Xuexin.com のアドレスをクリックします。上記をクリックしてホームページに入ります [教育クエリ]をクリックします; ステップ2: 最新のWebページで下図の矢印に示すように[クエリ]をクリックします; ステップ3: 新しいページで[学術単位ファイルにログイン]をクリックします; ステップ4: ログインページで情報を入力し、[ログイン]をクリックします。

thinkphpプロジェクトの実行方法 thinkphpプロジェクトの実行方法 Apr 09, 2024 pm 05:33 PM

ThinkPHP プロジェクトを実行するには、Composer をインストールし、Composer を使用してプロジェクトを作成し、プロジェクト ディレクトリに入り、php bin/consoleserve を実行し、http://localhost:8000 にアクセスしてようこそページを表示する必要があります。

12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法 12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法 Mar 28, 2024 pm 03:11 PM

12306 チケット予約アプリの最新バージョンをダウンロードします。誰もが非常に満足している旅行チケット購入ソフトウェアです。行きたい場所に行くのに非常に便利です。ソフトウェアには多くのチケット ソースが提供されています。本物のチケットを渡すだけで済みます。 - 氏名認証によるオンラインチケット購入 全ユーザー 旅行券や航空券を簡単に購入でき、さまざまな割引が受けられます。また、チケットを入手するための事前予約も開始できます。ホテルや特別な車の送迎も予約できます。これを使用すると、ワンクリックで行きたい場所に行き、チケットを購入できます。旅行がより簡単で便利になり、すべての人に旅行体験を提供します編集者はオンラインで詳細を説明するようになり、12306 人のユーザーに過去のチケット購入記録を表示する方法が提供されます。 1. Railway 12306 を開き、右下隅の [My] をクリックして、[My Order] をクリックします。 2. 注文ページで [Paid] をクリックします。 3. 有料ページにて

thinkphp にはいくつかのバージョンがあります thinkphp にはいくつかのバージョンがあります Apr 09, 2024 pm 06:09 PM

ThinkPHP には、さまざまな PHP バージョン向けに設計された複数のバージョンがあります。メジャー バージョンには 3.2、5.0、5.1、および 6.0 が含まれますが、マイナー バージョンはバグを修正し、新機能を提供するために使用されます。最新の安定バージョンは ThinkPHP 6.0.16 です。バージョンを選択するときは、PHP バージョン、機能要件、コミュニティ サポートを考慮してください。最高のパフォーマンスとサポートを得るには、最新の安定バージョンを使用することをお勧めします。

thinkphpの実行方法 thinkphpの実行方法 Apr 09, 2024 pm 05:39 PM

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

laravelとthinkphpではどちらが優れていますか? laravelとthinkphpではどちらが優れていますか? Apr 09, 2024 pm 03:18 PM

Laravel フレームワークと ThinkPHP フレームワークのパフォーマンスの比較: ThinkPHP は、最適化とキャッシュに重点を置いて、一般に Laravel よりもパフォーマンスが優れています。 Laravel は優れたパフォーマンスを発揮しますが、複雑なアプリケーションの場合は、ThinkPHP の方が適している可能性があります。

thinkphpのインストール方法 thinkphpのインストール方法 Apr 09, 2024 pm 05:42 PM

ThinkPHP のインストール手順: PHP、Composer、および MySQL 環境を準備します。 Composer を使用してプロジェクトを作成します。 ThinkPHP フレームワークと依存関係をインストールします。データベース接続を構成します。アプリケーションコードを生成します。アプリケーションを起動し、http://localhost:8000 にアクセスします。

Apple携帯電話でアクティベーション日を確認する方法 Apple携帯電話でアクティベーション日を確認する方法 Mar 08, 2024 pm 04:07 PM

Apple の携帯電話を使用してアクティベーション日を確認する場合、携帯電話のシリアル番号から確認するのが最善の方法ですが、Apple の公式 Web サイトにアクセスし、コンピュータに接続して 3 番目のバージョンをダウンロードすることでも確認できます。 -party ソフトウェアを使用して確認します。 Apple 携帯電話のアクティベーション日を確認する方法 回答: シリアル番号のクエリ、Apple 公式 Web サイトのクエリ、コンピュータのクエリ、サードパーティ ソフトウェアのクエリ 1. ユーザーにとって最善の方法は、自分の携帯電話のシリアル番号を知ることです。シリアル番号を確認するには、[設定]、[一般]、[このマシンについて] を開きます。 2. シリアル番号を使用すると、携帯電話のアクティベーション日を知るだけでなく、携帯電話のバージョン、携帯電話の製造元、携帯電話の工場出荷日などを確認することもできます。 3. ユーザーは Apple の公式 Web サイトにアクセスしてテクニカル サポートを見つけ、ページの下部にあるサービスと修理の欄を見つけて、そこで iPhone のアクティベーション情報を確認します。 4. ユーザー

See all articles