Zum Inhalt springen

MySQL-Abfrage in Typoscript. Kriege es nicht hin.

Erstellt am 5. Oktober 2009 · 8 Antworten · letzte Antwort am 6. Oktober 2009

Tags: Datenbank, Frage

pr819 ·

Guten Tag,

ich will die banale Abfrage

select title from meine_tabelle where uid = 1

in Typoscript umsetzen:

temp.meine_query = CONTENT
temp.meine_query {
	table = meine_tabelle
	select {
		selectField = title
		where = (uid = 1)
		}
	}

Wo liegt mein Fehler?

Peter

just2b ·

Hallo,

wenn du nur die ID hast, schau dir mal cObj RECORDS an, ansosten brauchst du bei CONTENT entweder die uidInList oder pidInList

georg

pr819 ·

Hallo Georg,

danke für Deine Antwort! Habe es folgendermaßen versucht, aber ohne Erfolg:

temp.meine_query = RECORDS
temp.meine_query {
	tables = meine_tabelle
	source = 1
	field = title
	}

Oder wie sonst kann ich die uid ansprechen? Hast Du evtl. noch einen Tipp?

pr819 ·

Danke, einpraegsam.net!

Demnach müsste/könnte mein TS so aussehen:

temp.meine_query = CONTENT
temp.meine_query {
	table = tx_meine_tabelle
	select {
		uid LIKE 1
		}
	renderObj = COA
	renderObj {
		10 = TEXT
		10.field = title
		20.wrap = |
		}
	}

Ich bekomme jedoch keinerlei Ausgabe. Die query liefert in MySQL ein einwandfreies Ergebnis.

pr819 ·

temp.meine_query.select.where = uid = 1

Das war nur eine Fehlinterpretation der TSREF:

without "where"!

Deine Variante klapppt leider auch nicht. Habe sowohl CONTENT als auch RECORDS als cObj versucht - kein output.

einpraegsam.​net ·

So, hier mal ein funktionierendes Beispiel:

lib.nameOfCurUser = CONTENT
lib.nameOfCurUser {
	table = tt_address
	select {
                pidInList = 10
		andWhere {
			data = GPvar:tx_wtdirectory_pi1|pm_receiver
			wrap = tt_address.uid=|
		}
	}
	renderObj = COA
	renderObj.10 = TEXT
	renderObj.10 {
		field = name
	}
}

Dabei fällt mir auf, dass pidInList eventuell nötig ist bei CONTENT

pr819 ·

Aah, da kommen wir der Sache näher 🙂
Jetzt muss ich nur nch die andWhere-Bedingung anpassen und dann habe ich's.

Und: Ja, pidInList ist notwendig.

Vielen Dank!