Hallo liebe Community
Ich habe mal wieder ein Problem. Diesmal ein eher logisches.
Ihr kennt sicherlich die Funktion bei Foren, dass man diese und ihre Kategorien in der Reihenfolge verändern kann. Im PhpBB2 bspw. Geht das mit einem move up und einem move down link.
Sowas brauche ich nun auch.
Allerdings fehlt mir da der entscheidende Schritt zur Lösung.
Ich habe mir das bis jetzt wie folgt gedacht:
Nehmen wir an ich haben 3 Kategorien.
Kategorien Cat_id Cat_order
------------------------------------------------
Cat 1 1 1
Cat 2 2 2
Cat 3 3 3
Cat ist die Kategorienbezeichnung.
Cat_id ist die Kategorienid.
Cat_order ist die Position der Kategorie. ( SELECT *... ORDER by cat_order )
Nun zu meinem Problem.
Nehmen wir an ich rufe meine Funktion zum ändern der Reihenfolge so auf
<a href="...&move=-1&c=2">Ein tiefer</a>
<a href="...&move=1&c=2">Ein höher</a>
Nun komme ich zu meinem problem
Wie tausche ich nun den Datensatz des zu bewegenden Forums / der zu bewegenden Kategorie mit dem nächst höheren bzw. niedrigaren aus?
$move = $_GET['move'];
$cat_id = $_GET['c'];
$query=mysql_query("SELECT `cat_order` FROM `categories` WHERE `cat_id` = '$cat_id'"
$row = mysql_fetch_object($query);
$query2=mysql_query("SELECT `cat_order` FROM `categories` WHERE `cat_id` = '$cat_id+$move'"
$row2 = mysql_fetch_object($query2);
$query3 = ("UPDATE `categories` SET `cat_order` = '$row->cat_order+$move' WHERE `cat_id` = '$cat_id'"
Das habe ich bis jetzt ... nun die Frage, wie bekomme ich raus welches der nächst höhere bzw. nächst tiefere Datensatz ist und wie kann ich nun sagen, dass der Datensatz in cat_order von der zu bewegenden Kategorie mit der Kategorie, mit der die zu bewegende Kategorie den Platz tauschen soll tauscht?
Nachher , wenn wir davon ausgehen, das Kategorie 2 um -1 verschoben wird soll es so aussehen.
Kategorien Cat_id Cat_order
------------------------------------------------
Cat 1 1 1
Cat 3 3 2
Cat 2 2 3
Ich hoffe es ist halbwegs verständlich was ich machen möchte und mir kann jemand helfen.
vielen dank schonmal im vorraus
mfg
Alex