---
title: "Query Problem mit Where bei der Seiten ID"
url: "https://www.typo3.net/d/83210-query-problem-mit-where-bei-der-seiten-id"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Datenbank","Frage","PHP"]
created: "2008-10-23"
last_reply: "2008-10-24"
replies: 6
solved: false
page: 1
pages: 1
lang: "de"
---

# Query Problem mit Where bei der Seiten ID

Extensions › Entwicklung · 6 Antworten · gestartet 2008-10-23

## Eröffnungsbeitrag

**ÁndreMansfeld** · 2008-10-23 · [Beitrag #1](https://www.typo3.net/d/83210-query-problem-mit-where-bei-der-seiten-id/1)

Hallo Freunde,
ich brauche einen kleinen Schubs in die richtige Richtung.
Ich frage so 2 Tabellen ab.

```php
function TEAM(){
      $template = $this->cObj->getSubpart($this->templateCode,"###TEAM###");
      $queryParts['SELECT'] = 'a.*,b.*';
      $queryParts['FROM'] = 'tx_1865_main a,tx_1865_trainer b';
      $pidList = $this->pi_getPidList($this->cObj->data['pages'],$this->conf["recursive"]);
      $queryParts['WHERE'] = '$pidList'; // 'deleted=0 and hidden=0';

      $res =$GLOBALS['TYPO3_DB']->exec_SELECTquery($queryParts['SELECT'],$queryParts['FROM'],$queryParts['WHERE']);
                   
      $row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
      $markerArray['###KLASSE###']=$row['klasse'];
      ........
      }
```

Die Ausgabe erhalte ich auch schön brav.  :D
Was ich aber einfach nicht hinbekomme (in der T3 konformen Schreibweise mit exec_SELECTquery() ) ist, dass
1. DELETED und HIDDEN akzeptiert werden
2. das der Code für die PAGE ID nicht genommen wird. Zeile 6

Zu beiden Einträgen tx_1865_main a,tx_1865_trainer b mache ich die Eingaben in der gleichen PAGE ID.

Die Ausgabe sollte mir dann einfach nur zu der Mannschaft 1865 die dazugehörigen Trainer zeigen.
Die Tabelle tx_1865_main sind globale Daten zur Mannschaft
Die Tabelle tx_1865_trainer für die Trainerdaten.

In der alten Schreibweise mit

```php
Select * from tx_1865_main,tx_1865_trainer Where deleted=0 and hidden=0 and PID IN ($pidList);
```

funktionierts  :o
Wie ist den die richtige Syntax bei exec_SELECTquery()?

Lieben Gruß Andreas

## Antworten

### [#2](https://www.typo3.net/d/83210-query-problem-mit-where-bei-der-seiten-id/2) · einpraegsam.​net · 2008-10-23

```php
... AND a.hidden = 0 AND a.deleted = 0 AND b.hidden = 0 AND b.deleted = 0
```

### [#3](https://www.typo3.net/d/83210-query-problem-mit-where-bei-der-seiten-id/3) · ÁndreMansfeld · 2008-10-23

OK, das geht schonmal :-)
Ich dachte, wenn die WHERE identisch ist müßte ich sie nicht noch referenzieren!!  :o
Hast du noch einen Tipp für die PID ID, denn da gehts nicht.
Also

```php
and a.$pidList and b.$pidList
```

verursachen dann einen invalid SQL.

Danke und lieben Gruß
ANdreas

### [#4](https://www.typo3.net/d/83210-query-problem-mit-where-bei-der-seiten-id/4) · frohike · 2008-10-23

Hi,

```php
$queryParts['WHERE'] = '$pidList'; // 'deleted=0 and hidden=0';
```

Fehler 1:
Wenn Du $pidList in einfache Hochkomma setzt, dann wird nicht der Wert für die Variable ersetzt. Möglich wäre

```php
$queryParts['WHERE'] = "$pidList"; // $pidList wird durch den Wert der Variablen ersetzt
```

Besser jedoch

```php
$queryParts['WHERE'] = $pidList;
```

Fehler 2:

```php
$pidList = $this->pi_getPidList($this->cObj->data['pages'],$this->conf["recursive"]);
```

In $pidList steht sowas wie "40,41,42,49" (ohne den Anführungszeichen). Das passt so in keine Query.

Lösung:

```php
$queryParts['WHERE'] = "a.pid in ($pidList) AND b.pid in ($pidList)";
```

Ergänzt um deleted und hidden:

```php
$queryParts['WHERE'] = "a.pid in ($pidList) AND b.pid in ($pidList) AND a.hidden = 0 AND a.deleted = 0 AND b.hidden = 0 AND b.deleted = 0";
```

Damit sollte es gehen :)

Viel Erfolg
Markus

### [#5](https://www.typo3.net/d/83210-query-problem-mit-where-bei-der-seiten-id/5) · ÁndreMansfeld · 2008-10-24

Vielen Dank :-)
Auch das klappt jetzt, allerdings konnte ich nur eine Tabelle zuweisen. Das macht aber nichts, weil ich die Daten ja trotzdem angezeigt bekomme. Also aus

```php
$queryParts['WHERE'] = "a.pid in ($pidList) AND b.pid in ($pidList) AND a.hidden = 0 AND a.deleted = 0 AND b.hidden = 0 AND b.deleted = 0";
```

hab ich

```php
$queryParts['WHERE'] = "a.pid in ($pidList) AND a.hidden = 0 AND a.deleted = 0 AND b.hidden = 0 AND b.deleted = 0";
```

gemacht. also "AND b.pid in ($pidList)" weggelassen.

#paralyzed#

Super, damit auf gelöst!!!!!

Lieben Gruß
Andreas

### [#6](https://www.typo3.net/d/83210-query-problem-mit-where-bei-der-seiten-id/6) · steffenk · 2008-10-24

> AND a.hidden = 0 AND a.deleted = 0 AND b.hidden = 0 AND b.deleted

Spätestens bei start/stop und Versionierung knallts dann: das reicht nicht!

Dafür gibts extra eine Funktion, die man auch benutzen sollte:

```php
$queryParts['WHERE'] = '...' . $this->cObj->enableFields('tx_1865_main') . $this->cObj->enableFields('tx_1865_trainer');
```

mal abgesehen davon das Capitols ausschliesslich bei Konstanten genutzt werden.

### [#7](https://www.typo3.net/d/83210-query-problem-mit-where-bei-der-seiten-id/7) · ÁndreMansfeld · 2008-10-24

Hallo steffenk,
Danke auch für deinen Support  :D
Ich werde es entsprechend anpassen.

Frohes Schaffen

Andreas

---

Quelle: „Query Problem mit Where bei der Seiten ID“, typo3.net, https://www.typo3.net/d/83210-query-problem-mit-where-bei-der-seiten-id
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
