[TYPO3-german] Saubere Lösung - Selectfeld -> WHERE ...

Christian Leicht usenet at schani.com
Mon Mar 31 13:22:49 CEST 2008


Christian Leicht schrieb:
> Hallo zusammen,
> 
> ich hab mich schon zergoogelt und auch andere Extensions zerpflückt, bin 
> aber auf keine "saubere" Lösung gestoßen. Vermutlich muss mir erst 
> jemand die Nase drauf halten.
> 
> SELECT * FROM xxx WHERE (group = 1 OR group = 23 OR group = 2 ...) AND 
> hidden = 0 AND ....

Danke für Eure beiden Lösungsansätze, aber leider funktioniert bei mir 
keines.

Ich hab mal das $this->cObj->enableFields('group') verwendet also so:

$res = 
$GLOBALS['TYPO3_DB']->exec_SELECTquery('*','tx_wwlpersona_person',$this->pi_getFFvalue($this->cObj->data['pi_flexform'],'gruppe','sDEF').')'.$this->cObj->enableFields('group').'hidden 
= 0 AND deleted = 0','','sorting');

Es gibt mir aber nur die Meldung:

NO entry in the $TCA-array for the table "group". This means that the 
function enableFields() is called with an invalid table name as argument.


Aber egal welches Feld ich angebe, es gibt immer diese Meldung.
Auch tx_wwlpersona_person.group hilft nix.


Dann der Ansatz direkt:

SELECT * FROM tx_wwlpersona_person WHERE group IN (1,2,3,4)

Also

$res = 
$GLOBALS['TYPO3_DB']->exec_SELECTquery('*','tx_wwlpersona_person','group 
IN 
'.$this->pi_getFFvalue($this->cObj->data['pi_flexform'],'gruppe','sDEF').')' 
hidden = 0 AND deleted = 0','','sorting');

gibt kein Ergebnis zurück. Keinen Fehler aber auch kein Ergebnis.






Jetzt hab ich noch in TYPO3 eine Funktion entdeckt:

function listQuery($field, $value, $table)

Returns a WHERE clause that can find a value ($value) in a list field 
($field)
For instance a record in the database might contain a list of numbers, 
"34,234,5" (with no spaces between). This query would be able to select 
that record based on the value "34", "234" or "5" regardless of their 
positioni in the list (left, middle or right).
Is nice to look up list-relations to records or files in TYPO3 database 
tables.


Aber ich komme mit der Verwendung nicht klar. Könnt Ihr mir da noch helfen?


$listesuchen = listQuery('group', $gruppe, 'tx_wwlpersona_person');
$res = 
$GLOBALS['TYPO3_DB']->exec_SELECTquery('*','tx_wwlpersona_person',$listesuchen.' 
hidden = 0 AND deleted = 0','','sorting');

ergibt

Fatal error: Call to undefined function listQuery() in  .........







More information about the TYPO3-german mailing list