1
Hallo
ich habe eine SQL-Tabelle mit folgendem Aufbau:
Der User kann per Inputfeld die Sortierung ändern. Das Script hierfür sieht wie folgt aus:
$new = Position auf welche der zu sortierende Eintrag springen soll
$idakt = ID des zu verschiebenden Eintrags
Das alles funktioniert auch schon. Jetzt zu meinem Problem:
Ich möchte die SQL-Tabelle wie folgt erweitern:
Ich füge also eine Spalte ein welche die Einträge nach Themen unterscheidet. Einträge eines Themas sollen unabhängig von den anderen sortierbar sein. D.h. Wenn ich mich in dem Theme mit der themenID = 2 befinde und dort die Sortierung ändere sollen nur "banane", "apfel" und "traube" neu sortiert werden.
Ich habe es mal so versucht:
Funktioniert leider nur fast.
Bsp.: Verschieben von "traube" auf position "2".
VORHER
NACHHER
"traube" rutscht zwar auf Position "2", allerdings rutscht der "apfel" nicht auf Position "3".
Richtig sollte es so aussehen:
Hat jemand Ideen, Tipps, Lösungsvorschläge?
ich habe eine SQL-Tabelle mit folgendem Aufbau:
ID name position
1 kirsche 2
2 banane 1
3 apfel 3
4 birne 5
5 traube 4
Der User kann per Inputfeld die Sortierung ändern. Das Script hierfür sieht wie folgt aus:
$new = Position auf welche der zu sortierende Eintrag springen soll
$idakt = ID des zu verschiebenden Eintrags
$query1 = "mysql_UPDATE themen SET Position = 0 WHERE ID = $idakt";
mysql_query($query1);
if($new<$old)
{
$query2 = "UPDATE themen SET Position = Position+1 WHERE Position >= $new AND Position < $old";
mysql_query($query2);
$query3 = "UPDATE themen SET Position = $new WHERE ID = $idakt";
mysql_query($query3);
}
else
{
$query4 = "UPDATE themen SET Position = Position-1 WHERE Position > $old AND Position < $new";
mysql_query($query4);
$query5 = "UPDATE themen SET Position = $new-1 WHERE ID = $idakt";
mysql_query($query5);
}
Das alles funktioniert auch schon. Jetzt zu meinem Problem:
Ich möchte die SQL-Tabelle wie folgt erweitern:
ID name position themenID
1 kirsche 1 1
2 banane 1 2
3 apfel 2 2
4 birne 2 1
5 traube 3 2
Ich füge also eine Spalte ein welche die Einträge nach Themen unterscheidet. Einträge eines Themas sollen unabhängig von den anderen sortierbar sein. D.h. Wenn ich mich in dem Theme mit der themenID = 2 befinde und dort die Sortierung ändere sollen nur "banane", "apfel" und "traube" neu sortiert werden.
Ich habe es mal so versucht:
$query1 = "mysql_UPDATE themen SET Position = 0 WHERE ID = $idakt";
mysql_query($query1);
if($new<$old)
{
$query2 = "UPDATE themen SET Position = Position+1 WHERE Position >= $new AND Position < $old AND mpID = $umpID";
mysql_query($query2);
$query3 = "UPDATE themen SET Position = $new WHERE ID = $idakt";
mysql_query($query3);
}
else
{
$query4 = "UPDATE themen SET Position = Position-1 WHERE Position > $old AND Position < $new AND mpID = $umpID";
mysql_query($query4);
$query5 = "UPDATE themen SET Position = $new-1 WHERE ID = $idakt";
mysql_query($query5);
}
Funktioniert leider nur fast.
Bsp.: Verschieben von "traube" auf position "2".
VORHER
ID name position themenID
1 kirsche 1 1
2 banane 1 2
3 apfel 2 2
4 birne 2 1
5 traube 3 2
NACHHER
ID name position themenID
1 kirsche 1 1
2 banane 1 2
3 apfel 2 2
4 birne 2 1
5 traube 2 2
"traube" rutscht zwar auf Position "2", allerdings rutscht der "apfel" nicht auf Position "3".
Richtig sollte es so aussehen:
ID name position themenID
1 kirsche 1 1
2 banane 1 2
3 apfel 3 2
4 birne 2 1
5 traube 2 2
Hat jemand Ideen, Tipps, Lösungsvorschläge?