php - 如何更改显示顺序?

标签 php mysql drupal-6

我有一个表单,在此表单上用户可以更改显示顺序。这反射(reflect)在显示我们所有员工的页面上,我们希望能够控制他们出现的顺序。

enter image description here

提交表单后,我想更改数据库中的其他显示顺序以反射(reflect)更改。

一些示例数据:

enter image description here

当他们保存该表单时,除了显示顺序之外的所有内容都会更新到数据库。这是在单独的函数调用中处理的。

function updateDisplayOrder($eid, $display_order_old, $display_order)
{
  if ($eid > 0)
  {
    if ($display_order != $display_order_old)
    {
      $result = db_query("SELECT * FROM {help_employees} WHERE active = 1 ORDER BY display_order");
      while ($arr = db_fetch_array($result))
      {
        if ($display_order > $display_order_old) 
        {
          if ($arr["display_order"] > $display_order_old && $arr["display_order"] <= $display_order)
          {
            db_query("UPDATE {help_employees} SET display_order = %d WHERE eid = %d", array($arr["display_order"] - 1, $arr["eid"]));
          }
        }
        else
        {
          if ($arr["display_order"] < $display_order_old && $arr["display_order"] >= $display_order)
          {
            db_query("UPDATE {help_employees} SET display_order = %d WHERE eid = %d", array($arr["display_order"] + 1, $arr["eid"]));
          }
        }
      }
      db_query("UPDATE {help_employees} SET display_order = %d WHERE eid = %d", $display_order, $eid);
    }
  }

}

现在发生了什么:

最佳答案

从当前位置删除您的项目

 db_query("UPDATE {help_employees}
     SET display_order = display_order - 1
     WHERE eid != %d AND active = 1 AND  display_order > %d",
       $eid,  $display_order_old);

为其新位置添加一些空间

 db_query("UPDATE {help_employees}
     SET display_order = display_order + 1
     WHERE eid != %d AND active = 1 AND  display_order >= %d",
       $eid,  $display_order);

修改它:

 db_query("UPDATE {help_employees} SET display_order = %d WHERE eid = %d ",
       $display_order, $eid);

关于php - 如何更改显示顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28677738/

相关文章:

php - jQuery 数据类型 :

php - 在 php/mysql 中更新多行/多列

mysql - MySQL 中的存储函数不喜欢用户提供的日期?

尝试修复错误后,带有联合的 MySQL View 无法正常工作

php - 如何制作基于请求查找属性的查询构建器

Drupal:创建管理菜单中缺少的内容链接

php - 连接同一服务器上的两个相似数据库

php - HTML, PHP, MYSQL, 上传图片并将其 url 保存到数据库中

drupal - 如何在主题 ('node' 、 $node) 和 drupal_render($node->content) 之间决定程序化 $node 输出

drupal - 如何仅在某些页面 View 显示上显示 block