Zum Inhalt springen

Kickstarter und INNER JOIN

Erstellt am 10. Oktober 2005 · 4 Antworten · letzte Antwort am 13. Oktober 2005

Tags: Frage

BenjaminW ·

Hallo!

ich habe mir mit dem Kickstarter eine Extension generieren lassen. Diese beinhaltet mehrere Tabellen, die ich mit Hilfe eines Frontend Plugins ausgeben möchte.
Der Kickstarter generiert eine Methode listView mit Beispielcode. Allerdings habe ich da das Problem, dass dieser stur den Inhalt der Tabellen ausgibt. Ich habe bisher keine einfache Möglichkeit gefunden, noch neben der einen Tabelle, noch weitere Tabellen per INNER JOIN einzufügen. Ich brauche nämlich statt den IDs die eigentlichen Namen der verknüpften Einträge im Resultset.

In der pibase habe ich nichts dergleichen finden können. Muss ich das jetzt komplett selber machen, oder kann man dem pi_exec_query doch noch nen INNER JOIN beibringen?

Gruß,
Benjamin Wilger

jenses ·

Das ist ein Kickstarter, ein bißchen mußt du schon noch selbst coden 😉
Funktioniert nach folgendem Muster

$queryParts['SELECT'] = '
	a.*,
	b.cat_name';		
$queryParts['FROM'] = '
	tx_user_articles a,
	tx_user_cat b';	
	
$queryParts['WHERE'] = sprintf('
	a.category=b.uid ', 
	str_replace('tx_user_articles', 'a', $this->cObj->enableFields('tx_user_articles'))
);

$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
	$queryParts['SELECT'],
	$queryParts['FROM'],
	$queryParts['WHERE']
);
$this->internal['currentTable'] = 'tx_user_articles';
while ($this->internal["currentRow"] = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
	$contentTable .= $this->makeListRow($res, $templateItem, $this->conf);
}

jenses

BenjaminW ·

Kaspers Vorgehensweise ist da leider nicht gut. Es muss schon ein echter Join sein, sonst kann ich ja nicht nach dem Namen einer Kategorie sortieren. Außerdem sagt er das ja selbst im Video, dass man das etwas anders lösen sollte.

Übrigens: Vielen Dank für die Hilfe. Hat funktioniert!