2

わかりました、これが私のページネーション用のコードです:

    $SQL = "SELECT
            cpc.product_id,
            cp.product_internal_ref,
            cp.product_name,
            cpa.product_sale_price,
            cpa.is_product_service,
            cpa.product_service_price,
            cpi.image_name,
            cpi.image_ext
            FROM catalog_products_categories cpc 
            JOIN catalog_products cp ON cp.product_id = cpc.product_id
            JOIN catalog_products_attributes cpa ON cpa.product_id = cpc.product_id
            LEFT JOIN catalog_products_images cpi ON cpi.product_id = cpc.product_id
            WHERE cpc.category_id = ".$catID;

    // PAGINATOR SECTION
    if($paginatorVARS['paginatorACTION'] == "next") {
      $SQL .= " AND cpc.product_id > ".$paginatorVARS['paginatorGOID']." ";
      $SQL .= "GROUP BY cpc.product_id ORDER BY cpc.product_id ASC LIMIT ".$paginatorVARS['catalogPaginatorPAGEROWS'];
    }
    elseif($paginatorVARS['paginatorACTION'] == "prev") {
      $SQL .= " AND cpc.product_id < ".$paginatorVARS['paginatorGOID']." ";
      $SQL .= "GROUP BY cpc.product_id ORDER BY cpc.product_id DESC LIMIT ".$paginatorVARS['catalogPaginatorPAGEROWS'];
    }
       // END PAGINATOR SECTION

http://www.slideshare.net/Eweaver/effective-pagination-using-mysqlで説明されている方法を使用しましたが、たとえば cpa.product_sale_price などの他の列でも並べ替える方法を見つけることができません。もしそうなら: ORDER BY cpc.product_id ASC, cpa.product_sale_price DESC/ASC それはページネーターを壊します 次の結果 何が起こるかわかりません... 助けてください!!

4

1 に答える 1

1

彼らのものが完璧だと言っているわけではありませんが、車輪を再発明したいのか、それとも彼らのコンセプトを取り入れて新しい丸みを帯びた車輪に取り入れたいのかを検討するための出発点になることがよくあります. を見てみましょう

http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/paging.html

また、フィドラーを使用して、ページネーション中に発生している http 取得と、並べ替えコンテキストの変更を調べます。開始時に、http 応答ヘッダー、jsonp コールバックを含む json データ、およびレコード数を指定する json データの末尾のトップ ノード値を返します。ページあたり 6679 / 50 は、フロントエンドによって計算された合計 134 ページを意味します。行が挿入および削除されるため、レコード数は呼び出しごとに (ページごとに) 変化する可能性があります。

ページが制限 start,total に影響を与えるのと同じように、並べ替え列はクエリ文字列に渡され、SQL に渡されます。これは、ページまたは並べ替え列要求 (列名、および asc または desc) の変更を示すフィドラー出力で確認できます。

GET /forum/topics-browse-remote.php?_dc=1369401925806&page=1&start=0&limit=50&sort=lastpost&dir=DESC&callback=Ext.data.JsonP.callback1 HTTP/1.1

GET /forum/topics-browse-remote.php?_dc=1369401977137&page=1&start=0&limit=50&sort=replycount&dir=ASC&callback=Ext.data.JsonP.callback2 HTTP/1.1

GET /forum/topics-browse-remote.php?_dc=1369401978355&page=1&start=0&limit=50&sort=replycount&dir=DESC&callback=Ext.data.JsonP.callback3 HTTP/1.1
于 2013-05-24T13:36:18.893 に答える