Coldfusion8/MySQL を使用して、モバイル デバイスで使用する製品検索を最適化しようとしています。
現在、次のことが起こっています。
1. user searches for "FOO"
2. Q1: search database for no of results
3. Q2: search again to get actual data for results FROM TO depending on pagination
4. user clicks details for a product
5. redo Q1 to get no of results
6. redo Q2 to get single result
7. use single result to query for product details (sizes, colors, pricings...)
ユーザーが結果セットから結果を選択したため、Q1 と Q2 のやり直しをスキップする方法を探しています。
質問:
既存のクエリのレコードの詳細のみが必要であることを示す変数を渡す方法だと思います。結果 1 ~ 20 があり、変数「DETAIL」と記事番号「123」を渡すとします。既存の結果セットから一致するレコードを選択する方法 = 結果セットから特定のレコードを選択する方法は?
編集: したがって、私の場合の唯一の方法は、最初にクエリを実行し、結果を Session.storage に保存してから、ストレージからそれぞれのレコードを選択し、最初の検索を再実行することだと思います。
私の最初のクエリは cfinvoke メソッド内にあるため、クエリのクエリは機能しません。そのため、それが完了すると消えてしまい、次のパススルーで最後の cfinvoke の結果をクエリできません。
また、cfc 変数スコープに格納しようとしました。また、同じ理由でうまくいきません。私はまだCF8を実行しており、cfobjectがパフォーマンスをどのように妨げるかについて多くのことを読んでいるので、cfobjectの使用を開始したくありません。
ともかく。「結果」と呼ばれる最初のクエリで、現在保存しています
<cfset Session.storate = results>
セッションストレージをダンプすると、次のようになります。
catch - query
CACHED: false
EXECUTIONTIME: 2031
SQL: SELECT a.*, p.ek, p.vk, p.x, p.y
FROM arts a
LEFT JOIN p ON
...
LEFT JOIN f ON
...
WHERE a.aktiv = "ja"
AND
... 20 conditions ...
SQLPARAMETERS: [array]
1) %402%
... 20 parameters
RESULTSET:
[Record # 1]
a: true
style: 402
price: 2.3
currency: CHF
...
[Record # 2]
a: true
style: 402abc
...
私の質問は次のようになります。
session.storageをループしてスタイルを確認するにはどうすればよいですか? 見つかった場合、これが私の結果であり、そこから詳細ビューを作成します。