0

私が達成したい出力は次のようなものです:

A
    Anthony SL
        Cars Project
        Flyers printing
        Projekt 3
C
    Carl SL
        Painting job

基本的に、顧客とその関連プロジェクトのアルファベット順のインデックス。

「tx_myclients」というテーブルにある顧客と、ページとして持っているプロジェクト。だからこれは私がhttp://pastebin.com/tfknf16Zをしていることです

しかし、何らかの理由で、内側の選択が外側の選択のループを停止しているように見えます。何ができますか?SQLステートメントをネストしましたか?

4

1 に答える 1

1

はい、あなたは正しいです。しかし、同じテーブルの同じレコードが 2 回レンダリングされないようにするのは意図的だと思います。

さらに言えば、レンダリング情報は次の場所に保存されています (123 はそのクライアントの uid です)。

$GLOBALS['TSFE']->recordRegister['tx_myclients:123']

typo3/sysext/cms/tslib/content/class.tslib_content_content.php、134ff行目あたりを見てください

これを解決するには、XCLASS を実行するtslib_content_Contentか、MySQL でデータを別のテーブルとして表示するビューを作成します。

CREATE VIEW tx_myclients_view
AS 
    SELECT * 
    FROM tx_myclients

それには他にもたくさんの回避策があると確信しています。


編集

ビュー パーツの場合 (XCLASS よりも簡単です):

  • MySQL ツールで上記の SQL ステートメントを使用します。
  • テーブル/ビュー名をテーブルに一致する名前に置き換えます(ビューも開始する必要tx_があります)
  • これで、MySQL データベースに「テーブル」が作成されます。これは、実際のテーブルの正確な「コピー」(*) であり、名前が異なるだけです。
  • から最初のループを選択し、 からtx_myclients2 番目のループを選択してtx_myclients_view、両方が独立したキャッシュを持つようにします。

(* 本当はコピーではなく、テーブルとして機能しています。そこから選択すると、そのステートメントから select ステートメントが実行されますCREATE VIEW。つまり、オリジナルに対して CRUD を実行すると、ビューに反映されます。詳しくは、ドキュメンテーション)

于 2012-03-21T11:04:56.090 に答える