1
我有一個表是editable和sortable。該表有2種類型的項目父母和子女。我希望用戶能夠在兩者之間切換並在兩者之間進行拖動,同時更新訂單。數據庫表格與以下內容類似。謎語這個。 PHP繞線機,可排序,可編輯表
+-------------------------------------------------------+-----------+
|id | userid | item | parent | item order | parent_id |
+-------------------------------------------------------+-----------+
|23 | 5 | cheese burger |false | 2 | 128 |
+-------------------------------------------------------+-----------+
|128| 5 | Burgers |True | 0 | 0 |
+-------------------------------------------------------+-----------+
|10 | 5 | Hamburger |false | 1 | 128 |
+-------------------------------------------------------+-----------+
|25 | 5 | steak burger |false | 3 | 128 |
+-------------------------------------------------------+-----------+
|90 | 5 | fish burger |false | 4 | 128 |
+-------------------------------------------------------+-----------+
|29 | 5 | fries |True | 5 | 0 |
+-------------------------------------------------------+-----------+
|22 | 5 | cheese Fries |false | 6 | 29 |
+-------------------------------------------------------+-----------+
|987| 5 | french fries |false | 7 | 29 |
+-------------------------------------------------------+-----------+
這會給我一個菜單,像這樣....
BURGERS
Hamburger
Cheese burger
Steak burger
Fish burger
FRIES
Cheese fries
French fries
大寫表示頭*
我能拿到訂單正確的,沒有問題。我的腳本POST
是項目順序的數組。
Array
(
[0] => 128
[1] => 10
[2] => 23
[3] => 25
[4] => 90
[5] => 29
[6] => 22
[7] => 987
)
然後我更新數據庫,以反映這一點,類似這樣的...
UPDATE menu SET item_order = '0' WHERE item = '128'
UPDATE menu SET item_order = '1' WHERE item = '10'
UPDATE menu SET item_order = '2' WHERE item = '23'
UPDATE menu SET item_order = '3' WHERE item = '25'
UPDATE menu SET item_order = '4' WHERE item = '90'
UPDATE menu SET item_order = '5' WHERE item = '29'
UPDATE menu SET item_order = '6' WHERE item = '22'
UPDATE menu SET item_order = '7' WHERE item = '987'
我在哪裏跌倒越來越父ID的權利。我嘗試了各種瘋狂的方法,找到parent ID
,然後做一個< >
類似的事情,但似乎沒有任何一貫正確的。你可以拖動一個標題,這會弄亂孩子們。即所有的孩子都會採用拖動的標題。你會如何處理這個問題?上次更新發生在添加新項目或拖動項目時。
編輯
這似乎是工作......
$order = "SELECT itemOrder, itemId, header from menuItems && user = $user order by itemOrder";
$order_query = mysql_query($order);
while($order_result = mysql_fetch_array($order_query))
{
$parent = $order_result['header'];
if ($parent == 'true')
{
$current_parent = $order_result['itemId'];
}
$item_id = $order_result['item_id'];
$parent_update = "UPDATE menuItems SET parent = '$current_parent' WHERE itemId = $itemId";
mysql_query($parent_update);
我現在看到您的編輯。大。很高興我能幫上忙。我會更精確地遵循我的僞代碼結構(特別是項目的兩個單獨更新),您不會像現在這樣更新標題以使自己成爲其父項。 :) – GolezTrol