Die TYPO3 Mailingliste - nicht fragen: lesen!
This is a discussion on [TYPO3-german] Gelöschter Datensatz wird trotz enableFields angezeigt within the typo3-german@lists.netfielders.de forums, part of the TYPO3-Mailinglisten: DEUTSCH category; Hallo, da ich den Wald vor lauter Bäumen nicht mehr sehe, würde ich mich über eure Hilfe freuen. ...
|
|||||||
| Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
|
#1
|
|||
|
|||
|
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 _______________________________________________ TYPO3-german mailing list TYPO3-german (AT) lists (DOT) netfielders.de http://lists.netfielders.de/cgi-bin/...o/typo3-german |
|
#2
|
|||
|
|||
|
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 _______________________________________________ TYPO3-german mailing list TYPO3-german (AT) lists (DOT) netfielders.de http://lists.netfielders.de/cgi-bin/...o/typo3-german |
|
#3
|
|||
|
|||
|
Kai Böhm wrote:
> 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. das könntest du kürzer als WHERE uid IN (7,8,..16) schreiben. > 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? Lass dir doch die komplette Query mal anzeigen ( echo $GLOBALS['TYPO3_DB']->exec_SELECTquery(...) ) und schau, was da steht. Dann kannst du das auch mal über den phpmyadmin ausprobieren und schauen, was da passiert. -- MfG, Christian Welzel GPG-Key: http://www.camlann.de/key.asc Fingerprint: 4F50 19BF 3346 36A6 CFA9 DBDC C268 6D24 70A1 AD15 _______________________________________________ TYPO3-german mailing list TYPO3-german (AT) lists (DOT) netfielders.de http://lists.netfielders.de/cgi-bin/...o/typo3-german |
|
#4
|
|||
|
|||
|
Hi Kai,
> 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: ähm, es wäre besser gewesen, wenn Du das ergebnis SQL gezeigt hättest. > $whereClause = $t3.'.uid='.implode(' OR '.$t3.'.uid=', $implodeArray); ich vermute, hier fehlt eine Klammer um die ORs? ( ... OR ... OR ...) AND delete=0 anstelle ... OR ... OR (... AND delete = 0) könnte es das sein? gruß, martin _______________________________________________ TYPO3-german mailing list TYPO3-german (AT) lists (DOT) netfielders.de http://lists.netfielders.de/cgi-bin/...o/typo3-german |
|
#5
|
|||
|
|||
|
Hi Martin,
ja, die Klammer war's. Hatte es in dem Moment als ich die Frage wegschickte auch noch gemerkt. Wie gesagt, stand halt total im Wald. Aber trotzdem danke für die Hilfe. Grüße Kai Martin Holtz schrieb: > Hi Kai, > >> 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: > ähm, es wäre besser gewesen, wenn Du das ergebnis SQL gezeigt hättest. > >> $whereClause = $t3.'.uid='.implode(' OR '.$t3.'.uid=', $implodeArray); > ich vermute, hier fehlt eine Klammer um die ORs? > > ( ... OR ... OR ...) AND delete=0 > anstelle > ... OR ... OR (... AND delete = 0) > > könnte es das sein? > > gruß, > martin _______________________________________________ TYPO3-german mailing list TYPO3-german (AT) lists (DOT) netfielders.de http://lists.netfielders.de/cgi-bin/...o/typo3-german |
|
#6
|
|||
|
|||
|
Hi Christian,
wie schon oben geschrieben, war's die fehlende Klammer. Danke trotzdem! Grüße Kai Christian Welzel schrieb: > Kai Böhm wrote: > >> 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. > > das könntest du kürzer als > WHERE uid IN (7,8,..16) > schreiben. > >> 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? > > Lass dir doch die komplette Query mal anzeigen ( > echo $GLOBALS['TYPO3_DB']->exec_SELECTquery(...) > ) > und schau, was da steht. Dann kannst du das auch mal über den phpmyadmin > ausprobieren und schauen, was da passiert. > _______________________________________________ TYPO3-german mailing list TYPO3-german (AT) lists (DOT) netfielders.de http://lists.netfielders.de/cgi-bin/...o/typo3-german |
| Themen-Optionen | Thema durchsuchen |
| Ansicht | Thema bewerten |
|
|
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [TYPO3-german] Eigene Extension wird nicht gecached trotz USER | Helmut Hummel | typo3-german@lists.netfielders.de | 4 | 06.06.2007 23:46 |
| [TYPO3-german] admPanel: Mal wird es angezeigt, mal nicht.. | Fabian Koenig | typo3-german@lists.netfielders.de | 4 | 25.04.2007 13:13 |
| [TYPO3-german] Menüprobleme Ebene wird nicht angezeigt | Alexander | typo3-german@lists.netfielders.de | 1 | 09.02.2007 20:59 |
| Re: [TYPO3-german]Nur erste Menüebene wird angezeigt | Michael Gnessner | typo3-german@lists.netfielders.de | 0 | 13.01.2007 17:48 |
| [TYPO3-german] Nur erste Menüebene wird angezeigt | Alexander | typo3-german@lists.netfielders.de | 0 | 13.01.2007 17:21 |