Navigation sortieren / verschieben
calconeon
- php
Folgendes Problem: (ich denk, wenn ihr auch nicht gleich seht, selbst nochmal diese Nacht drüber nach ^^, will euch ja nicht für mich arbeiten lassen ^^)
Meine Tabellenstruktur für die Datenbank nav, in der die Naviation drin ist:
id int(3)
id_sub int(3)
id_forward int(3)
ebene int(1)
name varchar(70)
active enum('0', '1')
template varchar(50)
head varchar(100)
frage varchar(150)
pos int(3)
Die Abfrage für den öffentlichen Bereich der Schul-Homepage:
SELECT *
FROM nav
WHERE (id_sub=id OR id_sub=$id_top)
AND (active=2 OR id=id_sub)
ORDER BY id_sub,ebene,pos
(nur aktive Punkte, Unterpunkte nur wenn jew. Überpunkt aktiv ist)
Abfrage für alles im Verwatungsmenü, wo unter anderem die Punkte verschoben werden sollen:
SELECT *
FROM nav
ORDER BY id_sub,ebene,pos
Wenn ich auf einen entsprechenden Verschieben-Button drücke, passiert folgendes:
if($arrow == 'dn')
{
$sql_scroll1 = "UPDATE nav
SET pos=pos+1
WHERE id=$id
";
$sql_scroll2 = "UPDATE nav
SET pos=pos-1
WHERE id=$id+1
";
}
else
{
$sql_scroll1 = "UPDATE nav
SET pos=pos-1
WHERE id=$id
";
$sql_scroll2 = "UPDATE nav
SET pos=pos+1
WHERE id=$id-1;
";
}
ABER: Wenn ich verschieben, tritt statt einem Fall immer mal einer von dreien statt: Es funktioniert ( :) ); Es springt woanders hin ( :( ); Es passiert nix ( :( :( ).
Wo ist jetzt mein Denkfehler??? Ich habe entweder die Sortierung oder die Verschiebung falsch gemacht.