0

我已经为此苦苦挣扎了一段时间,似乎无法找到解决方案。

通过使用 JQuery-ui,我有一个可排序的列表。每当位置发生变化时,它们后面的颜色也需要更改到相同的位置。

因此,每当列表发生更改时,我都会对应该处理排序的 PHP 文件执行 AJAX 请求。所有关于颜色应该如何排序的数据都运行良好。但是,我需要将其更新到我的数据库中的一个表中。

当我调试时,通过回显从 AJAX 请求返回的数据 (console.log),我得到了它们应该如何排序的正确方式。但是,只要我添加 myqsli_query($the_query),它就会两次返回相同的查询。然后最终弄乱了排序,一切都从那部分开始走下坡路。

AJAX 请求转到的一段代码:

        foreach ($status_colors as $values) {
            //rearranges the colors with the new positions
            for ($i = 0; $i < count($positions); $i++) {
                $new_array[$positions[$i]] = $values[$i];
            }
            //sorting by key starting with 0
            ksort($new_array);

            //since the colors are saved in the table like this;
            //red,green,yellow,purple,etc. I have to implode
            $new_status_color = implode(',', $new_array);
             //return the right order of colors.
            echo $new_status_color;

            //Setting up the query with the new status_color the id here is just a example, however its actually going through about 20 records to update
            $update_query = 'UPDATE cars SET status_color="'. $new_status_color .'" WHERE id=1';
            //If i echo out $update_query, sort the list a couple of times
            //I get the result that I want, but as soon as I use the following it breaks
            //This breaks it, on the first sort it goes fine. But when I sort again, I get the same query back, as the first one.
            mysqli_query($link, $update_query);
        }

关于这个问题的一个例子:假设我在一个列表中有 5 个项目,这是可排序的。

  1. 项目 1 - 绿色
  2. 项目 2 - 黄色
  3. 项目 3 - 红色
  4. 项目 4 - 蓝色
  5. 项目 5 - 黑色

假设我将第 5 项更改为高于第 1 项,这将创建此列表:

  1. 项目 5 - 黑色
  2. 项目 1 - 绿色
  3. 项目 2 - 黄色
  4. 项目 3 - 红色
  5. 项目 4 - 蓝色

现在使用 mysql_query 第一次可以正常工作,但是当我将其更改回第一个列表(第 1 - 5 项)时,它仍然返回上一个列表中的 SQL。

我希望能把它弄清楚一点,如果不是,你可以问一下,试着让它更容易理解。

还想补充一点,我尝试在 PHP 和 JQuery AJAX 中禁用缓存,这也无济于事。

4

0 回答 0