[TYPO3-german] Gelöschter Datensatz wird trotz enableFields angezeigt
Kai Böhm
chaloc at gmx.net
Sat Aug 25 18:40:03 CEST 2007
Sorry, Klammern waren natürlich die Lösung. :-(
Kai Böhm schrieb:
> 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