我有一個名爲list
列這是在我的訂單通過使用(在MYSQL查詢)列表中的號碼:(例如1至20)列表更新 - 排衝突
此列表,然後使用mysql命令輸出通過list
ASC - 但是,當我使用Jquery拖放UI列表更新後端列表時,它應該更新列表前端。
我的問題是我的列表順序有時會與其他行發生衝突,因爲可能有兩行或三行的值爲1的列表,因此當我的順序更新時我想知道如何通過+1更新其他行只有如果行是> =訂單號給
我不想讓列主,因爲我的目標不是使list
列獨特的,這樣做的原因是因爲有多個類別 - 並且在每個類別中它們都以1開頭 - 因此,如果我將其設置爲唯一,則會導致錯誤,因爲在不同類別中存在多個1。
我問了一個朋友,他說我可以使用觸發函數來嘗試PL/SQL,但這對我來說是新的理由 - 我不完全理解該語言,並想知道是否有人可以幫助我做我想做的事使用MYSQL甚至PL/SQL。
這是我到目前爲止有:
<?php
$project = mysql_real_escape_string(stripslashes($_POST['pid']));
$category = mysql_real_escape_string(stripslashes($_POST['cat']));
$order = mysql_real_escape_string(stripslashes($_POST['order']));
// need to do update the moved result (list row) and update all conflicting rows by 1
mysql_query("UPDATE `projects` SET `cat`='$category',`list`='$order' WHERE `id`='$project'")or die(mysql_query());
?>
結論:
我試圖更新沒有唯一的列有唯一值,個別類別。我不知道如何通過+1
將第二個條件添加到您的ORDER BY子句會不會更容易? 'ORDER BY list ASC,category ASC'? – andrewsi 2012-08-09 19:12:05
按類別排序會有什麼不同? - 原因列表是這樣的,以便項目可以自定義放置在一個頁面上 - 這意味着他們可以是一天的訂單1(前端)和訂單5(前端)下一個..我只需要將該列表作爲管理員/項目經理已經拖拽了後端列表來匹配前端...這需要我更新'list',當有多於一個的時候,它會經過項目名稱的ASC - 這可能不是它被放置在後端.. – Andrew 2012-08-09 19:16:00
我的意思是你可以在ORDER BY中添加額外的列,這樣如果你的'list'列有3行值爲1,那麼你可以對第二列的值進行排序。它避免了必須做混亂的更新。如果那不是你所追求的,我能不能請你在你的問題中增加一個實際的例子,因爲我已經讀過了上述六次,我無法理解它。 – andrewsi 2012-08-09 19:22:43