[TYPO3-german] Gelöschter Datensatz wird trotz enableFields angezeigt
Kai Böhm
chaloc at gmx.net
Sat Aug 25 18:30:57 CEST 2007
Hallo,
da ich den Wald vor lauter Bäumen nicht mehr sehe, würde ich mich über
eure Hilfe freuen. Hintergrund meiner Verwirrtheit ist folgendes
mySQL-Statement in einem selbst entwickelten Frontend-Plugin:
foreach ($districtArray as $subArray) {
$implodeArray[$subArray['uid']] = $subArray['uid'];
}
$whereClause = $t3.'.uid='.implode(' OR '.$t3.'.uid=', $implodeArray);
//debug($whereClause);
//$whereClause = $t3.'.uid=16';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
$t2.'.uid as blub, '.$t1.'.uid, '.$t1.'.title', // SELECT
$t1.' LEFT JOIN '.$t2.' ON '.$t1.'.uid='.$t2.'.areaid LEFT JOIN '.$t3.'
ON '
.$t2.'.districtid='.$t3.'.uid', // FROM
$whereClause.$this->cObj->enableFields($t1).$this->cObj->enableFields($t2).$this->cObj->enableFields($t3),
// WHERE
'', // GROUP BY
'', // ORDER BY
'' // LIMIT
);
Zunächst erstelle ich aus einem anderen Array die WHERE-Clause. Diese
sieht dann in etwas so aus "uid=7 OR uid=8 OR uid=13 OR uid=14 or
uid=16" mit dem entsprechenden Prefix davor.
Problem an der Sache ist jetzt, dass mir dann trotzdem ein Datensatz
angezeigt wird, bei dem deleted auf true gesetzt ist und der durch
$this->cObj->enableFields($t2) heraus fallen müsste. Da ich mir dann
doch nicht 100 %ig sicher war, habe ich jede uid gesondert in die
where-clause gesetzt (also nur "uid=7" ausgeführt und dann geändert in
"uid=8" und so weiter). Der Datensatz wurde dann nicht angzeigt, selbst
dann nicht, wenn ich ihn explizit aufgerufen habe. Scheinbar griff dann
enableFields.
Ist mein Umgang mit enableFields in dieser Form falsch oder hängt es mit
der WHERE-Clause zusammen? Oder ist es ganz trivial und ich sehe es
einfach nicht?
Grüße
Kai
More information about the TYPO3-german
mailing list