Löcher elegant stopfen: "1 3 4 7 11" => "1 2 3 4 5"

Löcher elegant stopfen: "1 3 4 7 11" => "1 2 3 4 5"

am 13.07.2006 08:56:20 von Bernd Muent

Hallo zusammen,
habe eine Tabelle derart:

name sort_order ID(auto_increment)
Katze 1
Maus 3
Hund 4
Elefant 7
Affe 11

Die "Löcher" in der Sortierreihenfolge sind halt durch Löschen etc.
entstanden.

Hätte jetzt gerne:
name sort_order ID(auto_increment)
Katze 1
Maus 2
Hund 3
Elefant 4
Affe 5

Sprich, eine fortlaufende Sortierreihenfolge, sozusagen alles aufrufen.

Natürlich kann ich alle Datensätze einlesen und zurückschreiben:
$result=mysql_query("SELECT ID FROM liste ORDER BY sort_order");

$sortCount=1;
while(list($ID)=mysql_fetch_row($result)) {
mysql_query("UPDATE liste SET sort_order=$sortCount WHERE ID=$ID");
$sortCount++;
}

Aber das halte ich nicht für besonders performant.

Danke für Tips für eine elegantere Lösung, Bernd


--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: kontakt@bmservices.de