---
title: "Datensätze von eigener Extension ordnen"
url: "https://www.typo3.net/d/54464-datensaetze-von-eigener-extension-ordnen"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Datenbank","Frage"]
created: "2006-12-05"
last_reply: "2007-06-25"
replies: 7
solved: false
page: 1
pages: 1
lang: "de"
---

# Datensätze von eigener Extension ordnen

Extensions › Entwicklung · 7 Antworten · gestartet 2006-12-05

## Eröffnungsbeitrag

**BackBuckle** · 2006-12-05 · [Beitrag #1](https://www.typo3.net/d/54464-datensaetze-von-eigener-extension-ordnen/1)

Folgendes Problem:

Ich habe eine eigene Extension über Kickstart generiert. Funktioniert auch ganz gut. Es handelt sich um einen kleinen Theaterspielplan. Leider habe ich keine Ahnung wie ich die einzelnen Datensätze ordne. Im Backend geht das (im Kickstarter ja einstellbar) einwandfrei, aber im Fronend bewegt sich nichts. Datensätze bleiben an alter Stelle. Wo kann ich einstellen, dass sich Datensätze auch im Frontend in gewünschte Reihenfolge bekomme?

Hoffe jemand kann mir helfen.

Viele Grüße
Micha  #paralyzed#

## Antworten

### [#2](https://www.typo3.net/d/54464-datensaetze-von-eigener-extension-ordnen/2) · kanti · 2006-12-05

Hallo BackBuckle,

Du holst doch die Daten für Deinen Spielpaln aus der Datenbank (SELECT)? Warum nimmst Du dann nicht ORDER BY?

Grüsse Kanti

### [#3](https://www.typo3.net/d/54464-datensaetze-von-eigener-extension-ordnen/3) · Bitbull · 2006-12-05

Hi BackBuckle,

um kantis Ausführungen zu ergänzen:

> ORDER BY sorting

"sorting" ist das Feld Deiner Tabelle, das Du im Kickstarter angelegt hast, wenn Du die Checkbox "Manual ordering of records" aktiviert hast.

Es besteht gerade anfänglich die Möglichkeit, dass man dies vergessen hat. Als Folge werden die Datensätze in der Ordung der Eingabe (Default: ORDER BY uid) angezeigt, was in den meisten Fällen auch zunächst zutrifft -> im BE werden diese dann "korrekt" angezeigt; erst bei späteren Ergänzungen stellt man fest, dass eine Sortierung unmöglich ist.

Fehlt das Feld "sorting", hat man dann keine Möglichkeit, die DS neu zu ordnen.

Durch die Option "Edit in Kickstarter" hat man aber die Chance, die Checkbox zu aktivieren und die Extension neu zu erstellen.

beste Grüße

Bitbull

### [#4](https://www.typo3.net/d/54464-datensaetze-von-eigener-extension-ordnen/4) · BackBuckle · 2006-12-05

Vielen Dank für die Antworten. Leider klappts noch nicht.

Ich habe folgendes gemacht: Ich habe die Extension nochmal neu erstellt, habe die Checkbox aktiviert und die Tabelle hat das Feld "sorting" erstellt.
Nun komme ich leider nicht weiter (bin da mit den Datenbanken nicht so der Meister ;)) Dieses "ORDER BY sorting" muss ich manuell sicher irgendwo einfügen. Naja ich habe es jetzt schon versucht in den SQL-Befehl einzufügen. Sah richtig aus, scheint es jedoch nicht zu sein, da es nicht funktioniert hat und die Datensätze nach wie vor bocksteif an ihrem Platz verharren. Was mache ich falsch und wo muss ich was ändern? Ich versuche so lange weiter mein Glück und vertraue auf euch ;)

Hilfe!!

Nachtrag:
Bitte schnell helfen - ich verzweifel sonst! Muss ich vielleicht was in der class.meinplugin_pi1.php ändern? Die Datenbankabfrage sieht so aus:

```php
// Die Datenbank ansprechen und in einer Schleife ausgeben
   $query = "SELECT * FROM user_spielplan_main"; 
   $query.=" WHERE deleted = 0 AND hidden = 0  AND pid ='".$spielplanPageId."'";
   $res = mysql(TYPO3_db,$query);
   while($row = mysql_fetch_assoc($res)) {
```

Muss ich in Zeile 2 vielleicht "ORDER BY sorting" einfügen? Habe es versucht, bekomme leider eine Fehlermeldung! Was kann ich machen, um meine Contentelemente nicht nur im Backend verschieben zu können, sondern auch auf der eigentlichen Website diese Verschiebung deutlich wird!

Micha

### [#5](https://www.typo3.net/d/54464-datensaetze-von-eigener-extension-ordnen/5) · BackBuckle · 2006-12-05

Problem gelöst!
6er im Lotto! Habe Problem gelöst!

So wirds gemacht:

```php
// Die Datenbank ansprechen und in einer Schleife ausgeben
   $query = "SELECT * FROM user_spielplan_main"; 
   $query.=" WHERE deleted = 0 AND hidden = 0  AND pid ='".$spielplanPageId."'";
   $res = mysql(TYPO3_db,$query);
   while($row = mysql_fetch_assoc($res)) {
```

Zeile 2 ändern in

```php
$query = "SELECT * FROM user_spielplan_main ORDER BY sorting";
```

und Zeile 4 in:

```php
$res = $this->pi_exec_query('user_spielplan_main','','','','','sorting');
```

Jetzt klappt alles wunderbar und Container lassen sich schieben!

Gruß Micha

### [#6](https://www.typo3.net/d/54464-datensaetze-von-eigener-extension-ordnen/6) · jenses · 2006-12-05

Und wozu sollen Zeile 2 & 3 jetzt gut sein ?
Wirkung haben sie jedenfalls keine ;-)

### [#7](https://www.typo3.net/d/54464-datensaetze-von-eigener-extension-ordnen/7) · Bitbull · 2006-12-08

Hi BackBuckle,

um jenses zu ergänzen:

Du kannst in PHP mehrere Varianten der Abfrageerstellung programmieren:

**Variante 1:**
Ändere Deinen Code:

```php
// Die Datenbank ansprechen und in einer Schleife ausgeben
   $query = "SELECT * FROM user_spielplan_main"; 
   $query.=" WHERE deleted = 0 AND hidden = 0  AND pid ='".$spielplanPageId."'";
   $res = mysql(TYPO3_db,$query);
   while($row = mysql_fetch_assoc($res)) {
```

in:

```php
// Die Datenbank ansprechen und in einer Schleife ausgeben
   $query = "SELECT * FROM user_spielplan_main"; 
   $query.=" WHERE deleted = 0 AND hidden = 0  AND pid ='".$spielplanPageId."' ORDER BY sorting";
   $res = mysql(TYPO3_db,$query);
   while($row = mysql_fetch_assoc($res)) {
```

Wesentlich eleganter und "Typo3-spezifischer" ist Deine
**Variante 2:**

```php
$res = $this->pi_exec_query('user_spielplan_main','','','','','sorting');
```

Ich bevorzuge eigentlich immer die 2. Variante, weil dadurch z.B. bereits von Typo3 die Datenbankabstraktion (also die theoretische Möglichkeit, auch andere Datenbanken außer MySQL anzusprechen) unterstützt wird. Schau Dir bitte ferner mal die von der Funktion ***pi_exec_query*** (findest Du in "class.tslib_pibase.php) erwarteten Übergabeparameter an:

```php
	function pi_exec_query($table,$count=0,$addWhere='',$mm_cat='',$groupBy='',$orderBy='',$query='')	{
```

Parameter Nr. 2 erwartet einen Integer, der die Funktion dazu veranlasst, einen COUNT durchzuführen oder nicht. Smarter wäre daher diese Version von Variante 2:

```php
$this->pi_exec_query('user_spielplan_main',0,'','','','sorting');
```

Du könntest auch absteigend sortieren. Das funktioniert z.B. durch

```php
$this->pi_exec_query('user_spielplan_main',0,'','','','sorting DESC');
```

Außerdem besteht die Möglichkeit, die einzelnen Parameter dynamisch zusammensetzen zu lassen und als Variable zu übergeben (wenn Du z.B. einen Switch für auf- oder absteigende Sortierung realisieren möchtest):

```php
$this->pi_exec_query('user_spielplan_main',0,'','','','.$sortOrderString.');
```

Wie Du siehst, kannst Du aber noch weitere Kombinationen als Parameter an die Funktion übergeben. Solltest Du Dich doch noch mit Datenbanken anfreunden wollen, kannst Du damit mal rumexperimentieren.

Zurück zu Deinem Problem:

Du hast - wie jenses charmant anmerkte - in Deinem Script beide Varianten verwendet, was dazu führt, dass Deine Zeilen 2+3 in der Tat überflüssig werden. Kommentiere sie also einfach mal aus. Du solltest keine Veränderung feststellen können, denn:

In beiden Fällen wird das Ergebnis der Query in das Array $res übergeben, welches Du ohne weitere Verrenkungen in der while-Schleife abarbeiten kannst.

Viel Spaß noch und beste Grüße

Bitbull

PS: Wenn Dein ursprüngliches Problem zu Deiner Zufriedenheit gelöst wurde, markiere bitte den Thread als "gelöst". Danke.

### [#8](https://www.typo3.net/d/54464-datensaetze-von-eigener-extension-ordnen/8) · BackBuckle · 2007-06-25

Etwas spät aber besser als nie: DANKE! Dieser Thread hat mir sehr weiter geholfen!

Micha

---

Quelle: „Datensätze von eigener Extension ordnen“, typo3.net, https://www.typo3.net/d/54464-datensaetze-von-eigener-extension-ordnen
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
