---
title: "SQL-Abfrage in Typoscript"
url: "https://www.typo3.net/d/61354-sql-abfrage-in-typoscript"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage"]
created: "2007-04-21"
last_reply: "2007-04-22"
replies: 2
solved: false
page: 1
pages: 1
lang: "de"
---

# SQL-Abfrage in Typoscript

Extensions › Entwicklung · 2 Antworten · gestartet 2007-04-21

## Eröffnungsbeitrag

**seoman** · 2007-04-21 · [Beitrag #1](https://www.typo3.net/d/61354-sql-abfrage-in-typoscript/1)

Hallo!
Ich habe eine Extension geschrieben um Frontenduser anzeigen zu lassen. Dafür habe ich zur Zeit im TS die folgende Abfrage erstellt:

```typoscript
table = fe_users
select {
 	pidInList = 109
 	andWhere.dataWrap =
               tx_abzfeuserlist_board LIKE '%,1,%' OR  
               tx_abzfeuserlist_board LIKE '1,%' OR 
               tx_abzfeuserlist_board LIKE '%,1' OR 
               tx_abzfeuserlist_board='1'
 	       orderBy = last_name
 	}
```

Da ist aber jetzt viel hardcoded festgelegt, was eigentlich so nicht geht, bzw. unschön ist. Eigentlich müßte ich die beiden folgenden SQL-Abfragen irgendwie in Typoscript verwenden, aber ich weiß nicht genau, wie ich das am besten anstellen kann. ÜBER PHPmyAdmin geben sie jeweils das richtige Ergebnis wieder:

####Abfrage 1####
SELECT tx_abzfeuserlist_boards.functions FROM tt_content,
tx_abzfeuserlist_boards WHERE tt_content.tx_abzfeuserlist_boards =
tx_abzfeuserlist_boards.uid AND tt_content.uid =166
####Ende####

Diese Abfrage gibt bei mir in der testumgebung das Resultat 1,8 wieder, das Ergebnis setze ich dann in die zweite Abfrage ein.Denn dass sind die möglichen Funktionen die ausgewählt wurden und deren Inhaber angezeigt werden sollen. Ichhab auch schon versucht das ganze in eine JOIN-Abfrage zu packen, aber die hat mich auch nicht weitergebracht. Daher das ganze in zwei Abfragen und hier der zweite Teil:

Die zweite Abfrage lautet:
SELECT fe_users.first_name, fe_users.last_name,  fe_users.tx_abzfeuserlist_function FROM fe_users WHERE
fe_users.tx_abzfeuserlist_function like '1,%'
or fe_users.tx_abzfeuserlist_function like '%,1,%'
or fe_users.tx_abzfeuserlist_function like '%,1'
or fe_users.tx_abzfeuserlist_function = 1
or fe_users.tx_abzfeuserlist_function like '8,%'
or fe_users.tx_abzfeuserlist_function like '%,8,%'
or fe_users.tx_abzfeuserlist_function like '%,8'
or fe_users.tx_abzfeuserlist_function = 8
###ENDE###
jetzt weiß ich nicht,wie ich das ganze in Typoscript hinbekomme. Kann mir da jemand mal Nachhilfe geben? Oder sagen, wo ich was nachlesen kan? In der TSRef hab ich bisher dazu nichts gefunden:-(
Liebe Grüße
Andreas

## Antworten

### [#2](https://www.typo3.net/d/61354-sql-abfrage-in-typoscript/2) · steffenk · 2007-04-22

dein SQL ist ungeeignet, das geht viel einfacher:

... WHERE FIND_IN_SET(1,tx_abzfeuserlist_board)> 0 OR FIND_IN_SET(8,tx_abzfeuserlist_board)> 0 ...

also ich würde das in TS so angeben:

```typoscript
plugin.tx_ext_pi1.boardUser = 1,8
```

und in php

```php
$tmp=explode(',',$this->conf['boardUser']);
foreach($tmp as $t) { 
  $addWhere[]='FIND_IN_SET('.$t.',tx_abzfeuserlist_board)> 0'; 
}
$addWhere='('.implode(' OR ',$addWhere).')';
```

### [#3](https://www.typo3.net/d/61354-sql-abfrage-in-typoscript/3) · seoman · 2007-04-22

Kann ich das ganze nicht nur im Typoscript lösen?
Ich schicke hier jetzt nochmal den kompletten Quelltext, den ich da bisher habe:

```typoscript
plugin.tx_abzfeuserlist_pi1 >
plugin.tx_abzfeuserlist_pi1 = COA
plugin.tx_abzfeuserlist_pi1 {
        10 = CONTENT
	10 {
		table = fe_users
		select {
			pidInList = 109
			andWhere.dataWrap = tx_abzfeuserlist_board LIKE '%,1,%' OR tx_abzfeuserlist_board LIKE '1,%' OR tx_abzfeuserlist_board LIKE '%,1' OR tx_abzfeuserlist_board='1'
			orderBy = last_name
			}
		

		renderObj = COA
		renderObj {
			20 = TEMPLATE
			20 {
				template = TEXT
				template.value (
	<!-- ###DOCUMENT_BODY### begin -->
	<div class="csc-header csc-header-n2"><h4>###first_name### ###last_name###</h4><img src="clear.gif" width="1" height="5" border="0" class="spacer-gif" alt="" title="" /><br /></div>
	<div style="float:right; margin:15px; ">###image###</div>
	<p><strong>Kontakt</strong></br>
	###address###<br>
	###zip### ###city###<br>
	Tel.: ###telephone###<br>
	###email###<br><img src="clear.gif" width="1" height="10" border="0" class="spacer-gif" alt="" title="" /><br />
	<p><strong>Graduierungen:</strong></br>###gradings###</p>
	<p><strong>Funktion im Verein:</strong></br>###functions###</p>
	</p>
	<p><strong>Lizenzen:</strong></br>###licenses###</p>
	###comments###</p>
	<!-- ###DOCUMENT_BODY### end -->			
					)
				workOnSubpart = DOCUMENT_BODY
				marks {
					first_name = TEXT
					first_name.field = first_name
					last_name = TEXT
					last_name.field = last_name
					city = TEXT
					city.field = city
					zip = TEXT
					zip.field = zip
					address = TEXT
					address.field = address
					telephone = TEXT
					telephone.field = telephone
					fax = TEXT
					fax.field = fax
					image = IMAGE
					image {
						file.import = uploads/tx_srfeuserregister/
						file.import.field = image
						file.width = 100px
					}
					email = TEXT
					email {
						field = email
						typolink.parameter.field = email
					}
					licenses < temp.licenses
					gradings < temp.gradings
					functions < temp.functions
					comments = TEXT
					comments {
						field = comments
						parseFunc < lib.parseFunc_RTE
					}
				}
				
			}
			
		}
	}}
}
```

Jetzt hab ich das Problem, das das bisher mit meiner alten Abfrage nur ging, weil ich im FE_User nochmal ein Feld board eingefügt hatte, das ich da aber nicht drin haben will, weil der User die Function ja als Attribut hat, die wiederum einem Board zugewiesen ist. Das Board wiederum will ich im Pluggin auswählen. So dass ich dann nachher bei der Erstellung der Seite nur noch sagen brauche, ich will hier jetzt die Trainer angezeigt bekommen und auf einer anderen Seite will ich jetzt nur noch den Vorstand angezeigt bekommen. So hatte ich das bisher gedacht. Und dafür hatte ich halt bisher zwei Abfragen gebastelt, die zumindest im PHPMyAdmin die gewünschten Ergebnisse bringen. Nur weiß ich jetzt nicht, wie ich die im Typoscript aufeinander loslassen kann:-). Also so, dass die erste Abfrage durchläuft und mit deren Ergebnissen die zweite Abfrage dann startet. dann auch gerne mit deiner geschrieben Änderung in der Abfrage.:-)
Ich wollte bei dem ganzen eigentlich vermeiden, dass ich jetzt nochmal was im PHP programmieren muß.:-)
Hoffe, du verstehst was ich meine:-)
LG Andreas

---

Quelle: „SQL-Abfrage in Typoscript“, typo3.net, https://www.typo3.net/d/61354-sql-abfrage-in-typoscript
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
