Wert in DB um 1 erniedrigen

daHooligan
HY,

ich hab ein kleines Link-Managment gebaut, das so weit auch ganz gut funktioniert. Nur beim löschen von Links "mittendrin" hab ich ein Problem.

Mit
php:
1:
2:
3:
<?php $erg=mysql_query("DELETE from links where nr='$id'"$dbh);
$erg mysql_query("UPDATE links SET nr = nr WHERE nr<'$id'"$dbh);
$erg mysql_query("UPDATE links SET nr = nr-1 WHERE nr>'$id'"$dbh); ?>

wird der Eintrag bei $id gelöscht.
Die Einträge davor ($id<nr) sollen unberührt bleiben, bei nr>$id sollnr um 1 verkleinert werden. IRgendwie funktioniert das aber net. Der führt den Befehl einfach net aus.
Gibt es in SQL auch nen "Befehl" wie $n--; oder so ähnlich, ich habs zwar probiert, so scheint es aber net zu gehen


MfG



daHool
max77
Was genau führt er denn nicht aus??
Nur das reduzieren um 1 oder auch das Löschen schon nicht??

Versucht mal, das nr-1 getrennt (also nr - 1) zu schreiben. Glaube zwar nicht, daß das der Fehler ist, aber einen Versuch ist es wert.

Gruß
Dirk
daHooligan
ähm... habs schon gelöst, habs aus Versehen zweimal gepostet....
Das Prob was, dass die Spalte "nr" auf "AUTO_INCREMENT" gesetzt war udn das hat wohl Stress gemacht
daHooligan
Kommando zurück! es geth doch net....

AHt mir da jemand ne Idee, wie ich das machen kann??

@max77:
er löschtden Datensatz, er führt den Befehl mit dem nr=nr aus und macht nur den Rest net...
DerDu
also wenn er das mit dem -1 direkt im sql nich machen will, wär ne lösung vieleicht, dass du alle elemente nr>'$id' slektierst, dann über das entstandenen array nen walk machst der jede nr um eins erniedrigt, und das ganze dann wieder zurück in die db schreibest/updatest
ThiefMaster
Es ist Unsinn, IDs immer fortlaufend haben zu wollen.
Wenn einmal ein Löschbefehl aus einer anderen Tabelle der mit der ID "verknüpft" ist fehlschlägt und die ID erneut belegt wird kann es dann nämlich komische Sachen geben großes Grinsen
daHooligan
habs jetzt anders gelöst, hab mir überlegt, dass es wirklich sinnvoller wäre, jedem eintrag eine "dauerhafte" ID zuzuweisen und erniedrige die ID einfach nicht mehr
vapor
autoincrement und gut is Augenzwinkern