|
Verfasst am: 09. 03. 2009 [16:21]
|
|
neotron
Themenersteller
Dabei seit: 07.06.2005
Beiträge: 18
|
Hallo Forum,
Ich habe eine listView, wo mit
$markerArray['###PROGRAMMLINK###']= $this->pi_linkTP(»Programm,array($this->prefixId.'[prog]'=> $row['veranstaltung_v_id']), $cache=0);
eine veranstaltung_v_id des Datensatzen übergeben werden soll. Der Link wird richtig generiert, aber im Array landet nicht die richtige veranstaltung_v_id.
Wie kann ich die ID so übergeben, dass ich im detailView diese in die Select Anweisung einbauen kann?
// Datensatz holen
$record=$this->pi_getRecord=$this->piVars['prog'];
$vcalvid=$record['veranstaltung_v_id'];
//Datensätze holen ver_veranstaltung
$resplist=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
'*', //select
'ver_veranstaltungselement a INNER JOIN ver_veranstaltung b ON a.veranstaltungselement_v_id = b.veranstaltung_v_id', //from
"b.veranstaltung_id = '".$vcalvid."' ", //where
$groupBy='',
$orderBy='a.veranstaltungselement_rang ASC, a.veranstaltungselement_block ASC, a.veranstaltungselement_von ASC, a.veranstaltungselement_typ ASC',
$limit='');
Würde mich freuen, wenn mir jemand einen Denkanstoss oder änliches geben kann.
VG
[Dieser Beitrag wurde 2mal bearbeitet, zuletzt am 09.03.2009 um 17:23.]
Have a lot of Fun!
|
|
Verfasst am: 11. 03. 2009 [10:01]
|
|
matin
Dabei seit: 09.08.2008
Beiträge: 90
|
das folgende kann nicht stimmen:
$record=$this->pi_getRecord=$this->piVars['prog'];
du hast in einer zeile zwei "="
versuch folgendes:
$record=$this->pi_getRecord('tx_deineext_tabelle',$this->piVars['prog']);
allerdings läuft das normalerweise über die uid des datensatzes (du verwendest veranstaltung_v_id)
|
|
Verfasst am: 11. 03. 2009 [10:50]
|
|
neotron
Themenersteller
Dabei seit: 07.06.2005
Beiträge: 18
|
Hallo Matin,
das habe ich auch gemerkt, leider selbes Ergebnis.
Mir ist bewusst das normaler Weise die UID der Tabelle übergeben wird, aber laut Syntax kann ich doch jede andere Spalte auch nehmen, wenn ich das richtig verstanden habe. Bei mir ist die Spalte "veranstaltung_v_id" aus Tabelle "ver_veranstaltung" mit Spalte "veranstaltungselement_v_id" aus Tabelle "ver_veranstaltungselement" verknüpft. Aus dieser würde ich gerne die Elemente im detailView per Select rausholen.
Dazu benötige ich in der WHERE Klausel die "veranstaltung_v_id", deshalb keine "UID".
Die Ext. soll auch nur lesen, da die Datenbank von anderer Stelle gefüllt wird.
Ich nutze nun folgenden Code:
// listView
// Programm ausgeben wenn vorhanden
$resvid = $this->pi_RTEcssText($row['veranstaltung_v_id']);
$resprog=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
'COUNT(*)', #select
'ver_veranstaltungselement', #from
"veranstaltungselement_v_id = '" . $resvid ."'" ); #where
// rowvidp mit 0 wenn kein Programm vorhanden ist
if ($resprog) {
$rowvid = $GLOBALS['TYPO3_DB']->sql_fetch_row($resprog);
$rowvidp = $rowvid[0];
// Marker füllen
if ($rowvidp == "0" || $rowvidp == ""<img src="typo3conf/ext/mm_forum//res/smilies/icon_wink.gif" alt="icon_wink.gif" />
{
$markerArray['###PROGRAMMLINK###']= '';
}
else
{
$markerArray['###PROGRAMMLINK###']= $this->pi_linkTP(»Programm,array($this->prefixId.'[item]'=> $row['veranstaltung_v_id']), $cache=1);
}
}
Der generierte Link wird richtig erzeugt.
// detailView Programm ausgeben
function detailView()
{
// Subpart definieren
$subpart=$this->cObj->getSubpart($this->template,'###DETAILVIEW###');
// einzelne Reihe definieren
$singlerow=$this->cObj->getSubpart($subpart,'###ROW###');
// Datensatz holen
$record=$this->pi_getRecord('ver_veranstaltung',$this->piVars['item']);
// Marker der Veranstalltung füllen
// Veranstaltungstitel ausgeben
$markerArray['###TITEL###']=$record['veranstaltung_titel'];
Das Array enhält leider immer noch einen anderen Datensatz aus der Tabelle.
Have a lot of Fun!
|