Zum Inhalt springen

Eigene Extension: Wert aus einer Tabelle in anderer tabelle abfragen

Erstellt am 21. März 2006 · 2 Antworten · letzte Antwort am 23. März 2006

Tags: TCA, Datenbank, Frage

madmongo ·

Hallo alle,

habe eine Erweiterung geschrieben, bei der Werte aus einer Tabelle (tx_irgendwas) mittels dropdown in eine andere tabelle (tx_irgendwo)übernommen werden.

in der ersteln tabelle (tx_irgendwas) werden name, adresse, und email, sowie die uid des im Dropdown gewählten Datensatzes der zweiten Tabelle (tx_irgendwo) eingetragen.
Die zweite Tabelle (tx_irgendwo) enthält lediglich ort, strasse.

Wenn ich jetzt einen inhalt anlegen dann funktioniert alles einwandfrei, jedoch wird im frontend folgendes ausgegeben:

Name, adresse, email, uid,

es sollte aber name , adresse,email, und ort ausgegeben werden Wobei der Ort aus der tabelle tx_irgendwo anhand der uid ausgelesen wird.
Ich vermute das in der Tca.php einfach nicht korrekt gehandelt wird, aber kann es auch nicht prüfen da Newbie 🙁

Das array das die ausgabe handelt sieht so aus:

		"sba" => Array (		
			"exclude" => 0,		
			"label" => "LLL:EXT:pr_first/locallang_db.php:tx_prfirst_inhalt1.bericht",		
			"config" => Array (
				"type" => "select",	
				"foreign_table" => "tx_prfirst_adress_list",	
				"foreign_table_where" => "AND tx_prfirst_adress_list.pid=###CURRENT_PID### ORDER BY tx_prfirst_adress_list.uid",	
				"size" => 1,	
				"minitems" => 0,
				"maxitems" => 100,
			)
		),
	),

wie kann ich das statement erweitern das er mir nicht anhand der pid sondern der uid auslist? Zudem scheint er mit nicht in die zweite tabelle zu springen um den Ort auszulesen. Kann ich das irgendwie verbiegen? Und wie kann ich das WHERE statement erweitern?

Vielen leiben Dank an alle Helfer,

Gruß

Tom

madmongo ·

Hallo birgitr,

vielen Dank für dein Postign. Ich hab mich auch gleich an den Umbau gemacht, leider ohne erfolg.
Es wird immer noch die Uid ausgegeben. Mittlerweile glaube ich zu wissen woran es leigen könnt, nämlich daran das er sich nur auf die eine Datenbank bezieht und die andere überhaupt nicht einliest. Mittels "getFieldHeader('immoworker')" bekomm ich nur die uid ausgegeben die in der ersten Tabelle gespeichert ist und kann auch nicht auf die zweite zugreifen.

Mir scheint als müsste ich noch etwas dazustricken damit mit "getFieldHeader('immoworker')" lediglich eine Datenbankabfrage nach der uid auf der zweiten Tabelle gestartet wird.
Kann ich das im Kickstarter angeben?

Vielen Dank und Grüße

Tom