PHP / MySQL如何通过管理面板确定表中行的优先级

时间:2014-03-07 17:38:57

标签: php mysql sorting wordpress-plugin

我正在创建一个自定义Wordpress插件。这是一家餐厅菜单创建者。我在数据库中有5列( id,menu_item,用餐,菜单顺序)。膳食是(0 =早餐,1 =午餐,或2 =晚餐)和菜单顺序整数,以优先考虑更高或更低的菜单项。我已经构建了管理面板,其中读取下表并按菜单显示项目,然后按菜单顺序显示。

    ID  |  MENU ITEM       |  MEAL  |  MENU ORDER
    _____________________________________________  
    1   |  Scrambled Eggs  |  0     |  0 
    6   |  Cereal          |  0     |  1
    5   |  Omelette        |  0     |  2
    2   |  Soup            |  1     |  0
    7   |  Broccoli        |  1     |  1
    4   |  Steak           |  2     |  0
    3   |  Chicken         |  2     |  1

我可以通过搜索正在添加项目的用餐并找到最后的菜单顺序编号并在之后添加它来添加新项目。当我想删除项目时,问题就出现了。如何有效地重新排序菜单顺序列?表结构是否有效设置?

Joomla用他们的文章和模块做到这一点。您可以在管理面板中上下排序优先级。

有人有任何想法吗?

1 个答案:

答案 0 :(得分:1)

运行单个sql查询:)

$deleted_meal_type = 0; //Breakfast- the Type of the Item being deleted
$deleted_meal_order = 7; //The order of the Item being deleted
query("UPDATE meals_table SET menu_order=menu_order-1 WHEN menu_order>$deleted_meal_order  AND meal_type=$deleted_meal_type;"

多田