Am 01.02.2013 00:31, schrieb Ralf-Rene Schröder:
Hallo...
irgendwie sehe ich den Wald vor lauter Bäumen nicht...
ich muß da irgendeinen blöden logischen Fehler machen.

ich habe datensätze (item) die per MM Tabelle mehreren Kategorien (cat)
zugeordnet sind
(die wiederum sind untereinander duch eine Kommaseparierte Liste
verbunden - vereinfacht hier nur als register, denn die stimmen)...

nun will ich hier die Datensätze zählen die sowohl cat als auch
parentcat zugeordnet sind...
jedes der beiden Elemente (100/110) zählt für sich richtig
bei parentcat alleine gibt es 4 - bei cat alleine 12 Ergebnisse
(schon richtig, weil diese cat auch in anderen parents eingebunden sind)
beides zusammen sollten bei meinen testfall 3 ergeben (sind aber hier 0)

item-count.cObject = TEXT
item-count.cObject.numRows.table = tx_ext_item
item-count.cObject.numRows.select {
   join = tx_ext_item_cat_mm ON ( tx_ext_item_cat_mm.uid_local =
tx_ext_item.uid )
   pidInList = 688
   andWhere.cObject = COA
   andWhere.cObject {
     100 = TEXT
     100.value = tx_ext_item_cat_mm.uid_foreign = {register:cat}
     100.insertData = 1
     100.noTrimWrap = |||
     110 = TEXT
     110.value = tx_ext_item_cat_mm.uid_foreign = {register:parentcat}
     110.insertData = 1
     110.noTrimWrap = | AND ||
   }
}

jemand eine Idee wo mein Denkfehler ist ???


bau dir doch mal ein SQL-Query als Beispiel auf und schmeiss das ins phpmyadmin.


bzw. lass dir mal hier dein Query ausgeben. irgendwo sollte da drin dann so etwas wie

tx_ext_item_cat_mm.uid_foreign = 1 AND // cat
tx_ext_item_cat_mm.uid_foreign = 2     // parentcat

stehen. Das kann natürlich nie erfüllt werden, da ein Feld nicht gleichzeitig zwei verschiedene Werte annehmen kann.

eigentlich musst du ein mit deiner mm-tabell ein join auf sich selber machen. damit so etwas geht musst du mit alias arbeiten

SELECT uid,count(*)
FROM tx_ext_item_cat_mm
JOIN tx_ext_item_cat_mm AS mm2 ON tx_ext_item_cat_mm.uid = mm2.uid
WHERE tx_ext_item_cat_mm.uid_foreign = 'cat'
AND mm2.uid_foreign = 'parentcat'

ob du dann noch die Ursprungstabelle joinst um direkt weitere Felder (titel, ...) zu bekommen steht dir frei.

bernd
--
http://www.pi-phi.de/cheatsheet.html
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an