[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