*hmpf* Habe schon im Forum gesucht aber nix gefunden. Wusste auch nicht genau wie ich suchen sollte. Auf jeden fall...
Ich habe eine Tabelle mit Punkten, die in einer bestimmten Reihenfolge angezeigt werden sollen.
Also es hat eine Navigation, und jeder Punkt ist an einem Ort. Jetzt soll man mit einem CMS System die Reihenfolge ändern können.
In der Tabelle hat es Einträge und jede hat ein Feld "Order". Dieses Feld gibt an, an welcher Position der Eintrag erscheinen soll.
Im CMS gebe ich eine Tabelle aus und dahinter ein Dropdown Menu, in welchem man die Position verändern kann. Dann Drückt man auf Synch und das ganze wird Editiert.
Ich habe mir gedacht, ich schaue, wo sich die Position verändert hat. Wenn z.B. ein Eintrag von der Pos 35 auf 12 verschoben wird, dann verschiebe ich alle von 12 bis 34 um eins nach oben. Wollte das mit einem Update Befehle machen.
(WHERE Bedingung stimmt noch nicht. Muss ich noch ändern.)
Ich möchte also ale Order Felder um +1 erhöhen. Mach ich irgendwas Falsch, oder funktioniert das bei MySQL nicht mit dem "`order` = `order` + 1"?
Mir ist klar das ich das einfach mit einer Schleife lösen könnte. Fände es aber geiler wenn das einfach mit einem UPDATE getan wäre...
Nun noch ein zweites Problem. Ich gebe jeweils die alte Position und die neue mit. Dann muss ich nicht für jeden Eintrag die DB durchsuchen. Der Quellcode sieht folgendermassen aus:
Der HTML Block steht natürlich 75 mal. Ich geb in PHP jetzt folgedes aus:
Und es gibt mir aus, das $oldOrder 0 Felder hat. Kann mir da jemand sagen was ich falsch mache?
Ich hoffe ich hab mich verständlich ausgedrückt...
Gruss
X
Ich habe eine Tabelle mit Punkten, die in einer bestimmten Reihenfolge angezeigt werden sollen.
Also es hat eine Navigation, und jeder Punkt ist an einem Ort. Jetzt soll man mit einem CMS System die Reihenfolge ändern können.
In der Tabelle hat es Einträge und jede hat ein Feld "Order". Dieses Feld gibt an, an welcher Position der Eintrag erscheinen soll.
Im CMS gebe ich eine Tabelle aus und dahinter ein Dropdown Menu, in welchem man die Position verändern kann. Dann Drückt man auf Synch und das ganze wird Editiert.
Ich habe mir gedacht, ich schaue, wo sich die Position verändert hat. Wenn z.B. ein Eintrag von der Pos 35 auf 12 verschoben wird, dann verschiebe ich alle von 12 bis 34 um eins nach oben. Wollte das mit einem Update Befehle machen.
SQL:
UPDATE `x_categories` SET `order` = `order` + 1 WHERE `id` = " . $key
Ich möchte also ale Order Felder um +1 erhöhen. Mach ich irgendwas Falsch, oder funktioniert das bei MySQL nicht mit dem "`order` = `order` + 1"?
Mir ist klar das ich das einfach mit einer Schleife lösen könnte. Fände es aber geiler wenn das einfach mit einem UPDATE getan wäre...
Nun noch ein zweites Problem. Ich gebe jeweils die alte Position und die neue mit. Dann muss ich nicht für jeden Eintrag die DB durchsuchen. Der Quellcode sieht folgendermassen aus:
HTML:
<input type="hidden" name="oldOrder[83]" value="75">
<select name="newOrder[83]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<!-- bla bla bla, und so weiter und so fort -->
<option value="72">72</option>
<option value="73">73</option>
<option value="74">74</option>
<option value="75" selected="selected">75</option>
</select>
Der HTML Block steht natürlich 75 mal. Ich geb in PHP jetzt folgedes aus:
PHP:
$oldOrder = $_POST['oldOlder'];
echo "[" . count($oldOrder) . "]<br />";
Und es gibt mir aus, das $oldOrder 0 Felder hat. Kann mir da jemand sagen was ich falsch mache?
Ich hoffe ich hab mich verständlich ausgedrückt...
Gruss
X