---
title: "Sortierung"
url: "https://www.typo3.net/d/103336-sortierung"
source: "typo3.net"
tags: ["Extensions","Extbase","Frage"]
created: "2011-01-17"
last_reply: "2011-01-28"
replies: 5
solved: false
page: 1
pages: 1
lang: "de"
---

# Sortierung

Extensions › Extbase · 5 Antworten · gestartet 2011-01-17

## Eröffnungsbeitrag

**cbatik** · 2011-01-17 · [Beitrag #1](https://www.typo3.net/d/103336-sortierung/1)

Hallo,

irgendwie verzweifle ich gerade an der einfachste Aufgabenstellung: Ich möchte mir Datensätze nach einer bestimmten Spalte sortieren lassen und habe dazu die findAll-Methode überschrieben:

```php
public function findAll() {
$query = $this->createQuery();
$query->setOrderings (Array('postcode' => Tx_Extbase_Persistence_Query::ORDER_ASCENDING));
return $query->execute();
}
```

Sortiert wird aber nichts, die Sortierung erfolgt einfach nach der UID. Die Spalte nach der sortiert werden soll heißt eben "postcode" in der Datenbank. Danke für Eure Hilfe!

LG
Christoph

## Antworten

### [#2](https://www.typo3.net/d/103336-sortierung/2) · Kurtux · 2011-01-17

Hallo Christoph,

ich habe Dein PHP-Code angeschaut, konnte nicht auffälliges sehen. Aber wie sieht es denn mit dem vom Extbase zusammengebastelten SQL-Statement aus? Kennst Du ihn?

Wenn nicht, dann kannst Du den im Log des Mysqlservers nachschauen. Und zwar im Log für Anfragen.
Aktivierbar mit der Directive log. Standardmäßig wird mysqld.log ins Datenverzeichnis %datadir% reingeschrieben (Ermittg des Datenverzeichnis z.B. mit SQL: show variables like 'datadir' ).

Gruß

Wolfram

### [#3](https://www.typo3.net/d/103336-sortierung/3) · cbatik · 2011-01-17

Hallo Wolfram,

danke für den Tipp. Leider habe ich aber keinen Zugriff auf die Log-Dateien, da das ganze ein Kundenprojekt ist und der Kunde einen normalen Webhost-Account hat.

Ich habe jetzt testweise die Abfrage umgestellt und wie folgt gemacht:

```php
public function findAllActive() {
  $query = $this->createQuery();
  $query->statement('SELECT * FROM tx_immobilia_domain_model_object ORDER BY postcode');
  $objects = $query->execute();
  return $objects;
}
```

Dann funktioniert das ganze, nur möchte ich ja die versteckten Elemente nicht anzeigen. Daher habe ich das SQL-Statement geändert auf:

```sql
SELECT * FROM tx_immobilia_domain_model_object WHERE hidden = 0 ORDER BY postcode
```

Nur dann funktioniert es wieder nicht. Die Sortierung wird einfach ignoriert, sobald ich die WHERE-Klausel verwende? Schon komisch, oder? :-)

Danke
Christoph

### [#4](https://www.typo3.net/d/103336-sortierung/4) · Kurtux · 2011-01-17

Hallo Christoph,

wenn das ein ganz normaler Webhost-Account ist, dann mache ein File- und SQL-Dump zieh Dir bei Dir selbst eine Entwicklungsumgebung hoch.

Bei Deinen SQL-Statements kann nichts fehlerhaftes sehen. Ich meine, damit kannst Du mit MySQL-Workbench oder mit phpmyadmin die Query ohne Fehler ausführen.

Was mich bei der statement-Methode mich stutzig macht, ist der 2. Parameter. Er ist optional, daher
geht ein

```sql
SELECT * FROM tx_immobilia_domain_model_object ORDER BY postcode
```

aber ein geht steht für mich nicht felsenfest.

```sql
SELECT * FROM tx_immobilia_domain_model_object WHERE hidden = 0 ORDER BY postcode
```

1. hidden ist ein Systemfeld
siehe Buch Zukunftssichere TYPO3-Extensions mit Extbase und Fluid Seite 157:
<http://books.google.de/books?id=qihZuW_rk5oC&pg=PA157&dq=typo3+createQuery+statement%28&hl=de&ei=5bU0TcbHI8bEswaK69WFCg&sa=X&oi=book_result&ct=result&resnum=1&sqi=2&ved=0CCwQ6AEwAA#v=onepage&q=typo3%20createQuery%20statement%28&f=false>

Methode setRespectsEnableFields() steuert die verwendet von hidden=0 im Sqlstatement.

2. Der 2. optionale Parameter
Ich weiss nicht, ob man die WHERE Klausel im 1. Parameter angeben darf. Möglicherweise nicht, und man muss die WHERE Klausel im 2. Parameter angeben: array('hidden' => 0)

Beschreibung der Methode Tx_Extbase_Persistence_Query::statement():

<http://www.t3node.com/typo3api/trunk/d8/d31/classTx__Extbase__Persistence__Query.html#aa2adc619053d02d23bb29c7755b35a22>

Gruß

Wolfram

### [#5](https://www.typo3.net/d/103336-sortierung/5) · SilentGhost · 2011-01-18

Hallo Christoph

Der Code in deinem ersten Post ist eigentlich korrekt. Kannst du uns mal dein Model zeigen? Bzw. hast du der Property den richtigen Datentyp zugewiesen?

Gruss René

### [#6](https://www.typo3.net/d/103336-sortierung/6) · cbatik · 2011-01-28

Hallo!

Warum auch immer: Ich habe alle möglichen Tipps von hier und was ich sonst noch so gefunden habe probiert, leider ohne Erfolg. Ich habe es daher etwas unschön gelöst, indem ich mir das hidden-Field in das Objekt geholt habe und dann in Fluid abfrage, ob es 0 oder 1 ist:

<f:if condition="{object.hidden} == 0">

Schön ist es nicht, da aber nicht allzu viele Objekte erstellt werden, tut es auch diese Lösung fürs Erste.

LG
Christoph

---

Quelle: „Sortierung“, typo3.net, https://www.typo3.net/d/103336-sortierung
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
